【问题标题】:How can I change a ko.observabel with durandal from another view?如何从另一个视图更改带有 durandal 的 ko.observable?
【发布时间】:2014-12-13 23:59:00
【问题描述】:

所以基本上我想做的是这样的:

main.html:

   <div style="cursor:pointer" data-bind="compose: {model: $data, view: "child.html"}" />
   <div style="background-color:#CCC; cursor:pointer; width:45px; " data-bind="visible: selectedlist ().length > 0">something</div>

main.js:

   self.selectedlist = ko.observableArray([]);
   self.addfnc = function(){self.selectedlist().add;}

child.html:

  <div data-bind="click: addfnc()">ADD</div>

它调用该函数并将其添加到列表中,但在 main.html 中没有任何变化。为什么?

【问题讨论】:

    标签: jquery knockout.js durandal


    【解决方案1】:

    问题是因为您将新内容添加到 observableArray 的结果中,而不是 observableArray 本身。当你想更新底层的 ko.observableArray 时,你必须这样做

    self.selectedlist.push('Whatever')
    

    有关操作剔除数组的信息,请查看their documentation

    【讨论】:

    • 你救了我的命。我真的认为这将是一个更复杂的问题。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多