我刚刚开始使用knockoutjs。我尝试将select选项值与knockout data-bind属性绑定。但是我无法将数组值作为不同的选项。 它将作为昏迷separetd填充。 我附上了我试过的示例代码。我希望其他人也会面临同样的奇怪错误。
self.availableStates = new Array();
for (var i=0;i<self.allStates.length;i++)
{
if (self.allStates[i]['name'] != null)
self.availableStates.push(self.allStates[i]['name'])
}
self.availableStates = ko.observableArray([self.availableStates]);
期待结果:
<select id="drpDwnLst" data-bind="options: availableStates">
<option value="">State4</option>
<option value="">State3</option>
<option value="">State2</option>
<option value="">State1</option>
</select>
实际结果
<select id="drpDwnLst" data-bind="options: availableStates">
<option value="">State4,State3,State2,State1</option>
</select>
答案 0 :(得分:1)
您在输出中看到的是在数组上调用toString()
的效果。
你得到这个结果是因为你的availableStates
已经是一个数组所以你不需要再将它包装到一个[]
所以你需要写一下:
self.availableStates = ko.observableArray(self.availableStates);
虽然您如何覆盖self.availableStates
定义......