我無法獲得嵌套的foreach工作。我有以下代碼:嵌套的foreach將不起作用
HTML - 摘錄
<div data-bind='foreach: choice'>
<p data-bind='foreach: id'>
<input name="group1" type="radio" data-bind="attr: { id: $data }"/> <label data-bind="attr: { for: $data} "> <span data-bind=" text: $data"> </span>
</label>
</p>
</div>
使用Javascript - 摘錄
var questionModel = {
question : ko.observable(),
id: ko.observableArray(),
choice: ko.observableArray()
}
function startTest() {
questionModel.question(questions[questionNo].question);
var m = [];
var i = [];
var e = 0;
while (e != 4) {
m.push(choices[questionNo][e].choice);
i.push(choices[questionNo][e].id);
e++;
}
questionModel.choice(m);
questionModel.id(i);
}
基本上就是我要完成的是一個單選按鈕內生成的每個選擇使數組中的ID成爲單選按鈕和標籤的ID。我已經成功地顯示了它自己的選擇。但是,當我加入了數據綁定= '的foreach:身份證' & 數據綁定= 'ATTR:{ID:$數據}',這是當事情停止工作。我不斷收到錯誤如下:
ReferenceError: Unable to process binding "foreach: function(){return id }" Message: id is not defined
免責聲明:我測試過的數據和一切爲了陣列的罰款。
我覺得PROBL em是你正在創建兩個不是真正嵌套的數組。 'id'是'choice'對象的一個屬性。嘗試刪除段落標記'
'並查看它是否有效。 – styfle
@styfle單選按鈕ID與上述解決方案的選擇相同,這不是我正在尋找的。該id不是選擇對象的屬性。我正在尋找的是這個。我有選擇陣列('水','空氣','土地','海')和id陣列('1','2','3','4')。單選按鈕應該是'水',ID是'1',下一個單選按鈕應該是'空',ID是'2',等等。 – DanielleS
你想要4個輸入:'水:1,空氣:2,陸地:3,海:4'?或者你想要16個輸入:'水:1,空氣:1,陸地:1,海:1,水:2,空氣:2,陸地:2,海:2 ...'? – styfle