复合可观察条件的敲除 applyBindingsToNode 问题
Knockout applyBindingsToNode issue for composite observables condition
我正在使用 knockout,我正在使用 ko.applyBindingstoNode 以编程方式应用运行时绑定到某个节点。
第一个简单的案例有效:
ko.applyBindingsToNode(myElement, {visible: observable1}, myModel );
但是如果我的 visible 依赖于 more observable,并且我使用正常的符号就像我通过 html 数据绑定属性进行绑定一样,它就不起作用:
ko.applyBindingsToNode(myElement, {visible: observable1() && observable2()}, myModel );
我需要定义一个 ko.computed 并在编程绑定中使用它,但我真的不想创建这些计算,因为我担心旧浏览器的性能,如 IE6
如何使用 applyBindingsToNode 完成涉及复杂表达式的绑定?
所以你想要一个不使用计算值的计算值?那是不可能的,你需要使用 ko.computed:
var myComputed = ko.computed(function(){
return observable1() && observable2();
});
ko.applyBindingsToNode(myElement, {visible: myComputed}, myModel);
如果您在 HTML 中执行此操作,它无论如何都会在后台创建一个计算。
淘汰赛表现相当不错。如果你真的担心你应该做一个基准测试并检查它是否真的重要
我正在使用 knockout,我正在使用 ko.applyBindingstoNode 以编程方式应用运行时绑定到某个节点。
第一个简单的案例有效:
ko.applyBindingsToNode(myElement, {visible: observable1}, myModel );
但是如果我的 visible 依赖于 more observable,并且我使用正常的符号就像我通过 html 数据绑定属性进行绑定一样,它就不起作用:
ko.applyBindingsToNode(myElement, {visible: observable1() && observable2()}, myModel );
我需要定义一个 ko.computed 并在编程绑定中使用它,但我真的不想创建这些计算,因为我担心旧浏览器的性能,如 IE6
如何使用 applyBindingsToNode 完成涉及复杂表达式的绑定?
所以你想要一个不使用计算值的计算值?那是不可能的,你需要使用 ko.computed:
var myComputed = ko.computed(function(){
return observable1() && observable2();
});
ko.applyBindingsToNode(myElement, {visible: myComputed}, myModel);
如果您在 HTML 中执行此操作,它无论如何都会在后台创建一个计算。
淘汰赛表现相当不错。如果你真的担心你应该做一个基准测试并检查它是否真的重要