针对复合observables条件的Knockout applyBindingsToNode问题

时间:2015-05-21 10:01:28

标签: javascript knockout.js binding

我正在使用knockout,我正在使用ko.applyBindingstoNode以编程方式将绑定应用于某个节点。

第一个简单的案例有效:

ko.applyBindingsToNode(myElement, {visible: observable1}, myModel );

但是如果我的可见性取决于更多的可观察性,并且我使用正常的表示法,好像我是通过html data-bind属性绑定的,它不起作用:

ko.applyBindingsToNode(myElement, {visible: observable1() && observable2()}, myModel );

我需要定义一个ko.computed并在程序化绑定中使用它,但我确实不想创建theese计算机,因为我担心旧浏览器的性能,如IE6

如何使用applyBindingsToNode进行涉及复杂表达式的绑定?

1 个答案:

答案 0 :(得分:2)

所以你想要一个不使用计算值的计算值?这是不可能的,你需要使用ko.computed:

var myComputed = ko.computed(function(){
    return observable1() && observable2();
});

ko.applyBindingsToNode(myElement, {visible: myComputed}, myModel);

如果您要在HTML中执行此操作,则无论如何都会在后台创建计算。

淘汰赛表现相当不错。如果你真的担心你应该做一个基准并检查它是否真的重要