knockout如何更改绑定到元素的模型

时间:2013-08-27 15:18:15

标签: javascript jquery html knockout.js

我真的刚刚开始淘汰赛,到目前为止它非常令人印象深刻。有了这个,我还遇到了一个问题。

我正在尝试获取绑定对象的列表,当单击on时,我希望它采用该模型并将其绑定到另一个视图以进行进一步编辑,没有问题。我遇到的问题是我得到一个错误,说我无法多次绑定到同一个元素。我已经读过ko.cleanNode([domElement])可以用来绕过它,但这真的是在内部使用。我做了一些搜索,人们提到你应该使用with,但我不认为这适用于我想做的事情。

有没有办法应用绑定,但只是更新底层模型上下文?

简化jsfiddle示例。我的js代码从119开始,在它上面是ko映射插件。

1 个答案:

答案 0 :(得分:2)

首先,使用外部资源为您的小提琴添加外部资源,而不是将它们粘贴到您的小提琴中。

其次,对于您的问题,执行此类操作的最简单方法是在视图模型中使用SelectedItem属性并将子视图绑定到该属性。像这样:

var MyViewModel = function() {
    var self = this;
    self.MyItems = ko.observableArray();
    self.SelectedItem = ko.observable();
}

var MyChildViewModel = function() {
    var self = this;
    self.SomeProperty = ko.observable();
}

现在使用MyItems的实例填充MyChildViewModel并将SelectedItem设置为您希望作为孩子的MyItems中的任何一项,并将子视图绑定到{{1} }}:

SelectedItem