【问题标题】:knock out foreach binding with independent varriable具有自变量的淘汰赛 foreach 绑定
【发布时间】:2015-04-08 19:17:05
【问题描述】:

我在我的 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 无效

如果我的问题不清楚,请告诉我

【问题讨论】:

  • 你真的有你的input inside select 元素吗?因为这不是有效的 HTML,它可能会混淆 KO 绑定...
  • 对不起,这只是复制/粘贴问题,实际上它在选择元素之外。请检查更新的问题。
  • 首先,您应该检查浏览器的控制台是否存在绑定错误。然后您还应该发布您的视图模型,因为没有它我们无法判断绑定为什么不起作用。可能没有oneList.ddList,您需要在绑定上下文中“向上”使用$parent$root,例如data-bind="options: $parent.ddList...
  • 谢谢@nemesv 它正在工作请发布你的答案我会接受并关闭这个问题

标签: javascript html knockout.js


【解决方案1】:

如果没有看到您的视图模型,很难判断,但很可能在oneList 列表中的项目上没有定义ddList 属性。

foreach 绑定中,当前绑定上下文是指列表中的当前项,因此如果您需要“向上”在binding context 中访问与onlist 处于同一级别的属性那么您需要使用$parent(或$root 来访问您的主视图模型)。

固定的options 绑定如下所示:

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

【讨论】:

    猜你喜欢
    • 2013-03-14
    • 2014-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    • 2014-01-10
    • 2013-02-04
    • 2015-03-17
    相关资源
    最近更新 更多