1

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

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

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

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

4

1 回答 1

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任何项目并将子视图绑定到:MyItemsSelectedItem

<div id="theChildView" data-bind="with: SelectedItem">
    <span data-bind="text: SomeProperty"></span>
</div>
于 2013-08-27T15:31:10.343 回答