簡體   English   中英

淘汰賽Js定制綁定處理程序更新依賴項

[英]Knockout Js custom binding handler update dependency

帖子: 淘汰賽:自定義綁定處理程序上的valueAccessor vs viewModel? 對自定義綁定處理程序中如何綁定viewModel可觀察對象做出以下聲明: “任何訪問了其值的可觀察對象都會創建一個依賴項。”

如何在自定義綁定處理程序中從viewModel的可觀察X值訪問值, 而又不創建一個依賴關系,如果X以后被更改,該依賴關系會使自定義綁定處理程序進行更新?

我做了一個小提琴來展示這一點。 該行viewModel.xxx(); 創建可觀察到的“ xxx”的依存關系。

http://jsfiddle.net/hhw4a/5/

簡短的答案:您不能。

您可以使用的最佳解決方法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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM