![](/img/trans.png)
[英]Explicity set value binding handler inside a custom binding handler with knockout.js
[英]Knockout Js custom binding handler update dependency
帖子: 淘汰賽:自定義綁定處理程序上的valueAccessor vs viewModel? 對自定義綁定處理程序中如何綁定viewModel可觀察對象做出以下聲明: “任何訪問了其值的可觀察對象都會創建一個依賴項。”
如何在自定義綁定處理程序中從viewModel的可觀察X值訪問值, 而又不創建一個依賴關系,如果X以后被更改,該依賴關系會使自定義綁定處理程序進行更新?
我做了一個小提琴來展示這一點。 該行viewModel.xxx();
創建可觀察到的“ xxx”的依存關系。
簡短的答案:您不能。
您可以使用的最佳解決方法afaik:創建一個普通的JavaScript屬性,並引用該屬性。 像這樣:
function Vm(){
this.aOb = ko.observable('a value');
this.a = this.aOb();
}
現在,您可以在自定義綁定中引用a
,並且對aOb的更改不會導致您的綁定重新觸發。
如果您希望始終與aOb保持同步,則可以使用subscription:
function Vm(){
this.aOb = ko.observable('a value');
this.a = this.aOb();
this.aOb.subscribe(function(newVal){
this.a = newVal;
}.bind(this));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.