我正在使用knockout,我正在使用ko.applyBindingstoNode以编程方式将绑定应用于某个节点。
第一个简单的案例有效:
ko.applyBindingsToNode(myElement, {visible: observable1}, myModel );
但是如果我的可见性取决于更多的可观察性,并且我使用正常的表示法,好像我是通过html data-bind属性绑定的,它不起作用:
ko.applyBindingsToNode(myElement, {visible: observable1() && observable2()}, myModel );
我需要定义一个ko.computed并在程序化绑定中使用它,但我确实不想创建theese计算机,因为我担心旧浏览器的性能,如IE6
如何使用applyBindingsToNode进行涉及复杂表达式的绑定?
答案 0 :(得分:2)
所以你想要一个不使用计算值的计算值?这是不可能的,你需要使用ko.computed:
var myComputed = ko.computed(function(){
return observable1() && observable2();
});
ko.applyBindingsToNode(myElement, {visible: myComputed}, myModel);
如果您要在HTML中执行此操作,则无论如何都会在后台创建计算。
淘汰赛表现相当不错。如果你真的担心你应该做一个基准并检查它是否真的重要