0

我刚开始使用knockoutjs。我尝试将选择选项值与敲除数据绑定属性绑定。但我无法将数组值作为不同的选项。它将填充为 coma 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>
4

1 回答 1

1

您在输出中看到的是调用toString()数组的效果。

你得到这个结果是因为你 availableStates 已经是一个数组,所以你不需要再次将它包装到一个数组中[]

所以你只需要写:

self.availableStates = ko.observableArray(self.availableStates);

虽然你如何覆盖你的self.availableStates定义很奇怪......

于 2013-03-25T11:19:09.700 回答