我在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
无效
如果我的问题不明确,请告诉我
答案 0 :(得分:1)
在没有看到您的视图模型的情况下,很难说,但很可能在ddList
列表中的项目上没有定义oneList
属性。
在foreach
绑定中,当前绑定上下文引用列表中的当前项,因此如果您需要在binding context中“上升”以访问与此属性相同的属性您的onlist
,然后您需要使用$parent
(或$root
访问您的主视图模型)。
固定的options
绑定看起来像这样:
<select data-bind="options: $parent.ddList, optionsText:... " >