繁体   English   中英

淘汰表选择数据绑定绑定得到意外结果

[英]knockoutjs select data-bind binding is given unexpected result

我才刚开始使用淘汰表。 我尝试将选择选项值与敲除数据绑定属性绑定在一起,但是无法将数组值作为不同的选项获取。 它将填充为昏迷状态。 我已经附加了我尝试过的示例代码。我希望其他一些人也会遇到同样的奇怪错误。

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>

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

之所以会得到这个结果,是因为您的availableStates 已经是一个数组,因此您无需再次使用[]将其包装到一个数组中

所以你只需要写:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM