这篇文章: Knockout: valueAccessor vs viewModel on custom binding handlers?在自定义绑定处理程序中如何绑定viewModel observable: “访问其值的任何可观察对象都会产生依赖关系。”
如何从自定义绑定处理程序 中的viewModel上的observable X访问值,而 创建一个依赖项,如果X是X,则自定义绑定处理程序将更新后来换了?
我做了一个小提琴,展示了这一点。第viewModel.xxx();
行创建了对“xxx”observable的依赖。
答案 0 :(得分:1)
简短回答:你不能。
您可以使用的最佳解决方法,afaik:创建一个简单的vanilla JavaScript属性,并引用 。像这样:
function Vm(){
this.aOb = ko.observable('a value');
this.a = this.aOb();
}
现在您可以在自定义绑定中引用a
,对aOb的更改不会导致绑定重新启动。
如果你想始终与aOb保持同步,你可以使用subscribe:
function Vm(){
this.aOb = ko.observable('a value');
this.a = this.aOb();
this.aOb.subscribe(function(newVal){
this.a = newVal;
}.bind(this));
}