我在页面中有两个单独的 View 模型

function AModel() {
...
}
function BModel() {
...
self.testValue= ko.observable('test')
}

 $(document).ready(function() {
var AModel1= new AModel();
var BModel1= new BModel();
ko.applyBindings(AModel1);
ko.applyBindings(BModel1);
});

现在在html页面
我如何使其工作?
<span data-bind="text: BModel1.testValue" ></span>

最佳答案

自KO 2.3起,您不应在同一DOM元素上多次调用ko.applyBindings,这可能会导致问题或引发异常。

您可以做的是创建一个“包装” View 模型,并使用它调用ko.applyBindings:

$(document).ready(function() {
    var AModel1= new AModel();
    var BModel1= new BModel();
    ko.applyBindings({ AModel1: AModel1, BModel1: BModel1 });
});

然后,您可以使用 View :
<span data-bind="text: BModel1.testValue" ></span>

演示JSFiddle

关于mvvm - knockout 页面中的多个 View 模型不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20239969/

10-12 15:49