敲除foreach绑定与自变量

时间:2015-04-08 09:30:28

标签: javascript html5 knockout.js

我在html5应用程序中使用knockout进行绑定。

我有一个奇怪的情况。

我使用for循环绑定一个div,如下所示

<div data-bind="foreach: oneList">
<select name="dropDown1" id="dropDown1" data-bind="options: ddList,optionsText: function(item) { return item.value;},optionsValue:function(item) { return item.key; }">
</select>
<input type="text" id="newValue" data-bind="value : oneValue"/>
</div>

此处oneList是不同的变量,而ddList是不同的变量,两者都是独立可变的。

因此,当实际绑定发生时,下拉列表不会被绑定,但输入文本被绑定,因为oneList.oneValue有效,但oneList.ddList无效

如果我的问题不明确,请告诉我

1 个答案:

答案 0 :(得分:1)

在没有看到您的视图模型的情况下,很难说,但很可能在ddList列表中的项目上没有定义oneList属性。

foreach绑定中,当前绑定上下文引用列表中的当前项,因此如果您需要在binding context中“上升”以访问与此属性相同的属性您的onlist,然后您需要使用$parent(或$root访问您的主视图模型)。

固定的options绑定看起来像这样:

<select data-bind="options: $parent.ddList, optionsText:...  " >