【问题标题】:Knockout force select update binding淘汰赛强制选择更新绑定
【发布时间】:2012-07-06 15:54:54
【问题描述】:

我有多个地址的地址表格。

http://jsfiddle.net/VAs5r/6/

加载表单时,addresses 对象的值 Active:false 绑定到所有输入字段的 enable 属性,以阻止任何条目。然后一个名为“新地址”的按钮将 Active 属性更改为 true,以启用所有输入并让用户输入信息。

正在工作,但问题是在您更改选择选项然后再次返回到当前地址类型之前不会刷新字段。

有没有办法解决这个问题?

谢谢。

【问题讨论】:

    标签: json knockout.js


    【解决方案1】:

    这里是your fiddle,已更新并正常工作。

    您遇到的问题是这不是设置可观察值的有效方法:

    self.selectedAddress().active=true;
    

    在淘汰赛中,可观察对象是函数,并通过将新值作为参数传递给它们来设置,如下所示:

    self.selectedAddress().active(true);
    

    当您按照您的方式设置可观察对象时,它们的“可观察性”被覆盖,它们成为标准对象。发生这种情况时,UI 不会收到更新通知。

    【讨论】:

    • 我添加了 visible: selectedAddress().active 到删除按钮,它只在所选地址处于活动状态时出现.. 添加 visible: !selectedAddress().active 到新地址按钮不起作用.有什么线索吗?
    • 刚刚找到解决方案:可见:!selectedAddress().active()... 非常棘手的淘汰赛 :) 谢谢
    • @VAAA,是的,如果您只是绑定属性,则不需要括号,但如果您还有其他内容,则可以这样做。
    • Tyrsius,不能在选择元素中包含地址类型名称(家庭、办公室等)吗?这是因为当我从服务器获取 json 时,我没有得到所有的地址类型,只是记录关联的地址类型。谢谢
    • 顺便发布一个与此相关的新问题,但我认为更复杂:) 感谢您的帮助。 stackoverflow.com/questions/11457298/…
    猜你喜欢
    • 2013-05-04
    • 2018-08-06
    • 2014-02-21
    • 2013-10-11
    • 2016-06-23
    • 2012-06-18
    • 2014-10-30
    • 2017-05-11
    相关资源
    最近更新 更多