2016-11-02 12 views
0

カスタムバインディングの方法でソースの現在の値をどのように確認できるか知っていますか?次のようにカスタムバインディングのバインドメソッドでソースの現在の値を確認する方法

bind方法が定義される:

bind(binding, scope, [args...])

bindが呼び出されると、Iは結合に関与しているのviewmodelプロパティ(ソース)の値を知りたいです。

ありがとうございました。

答えて

0

カスタムバインディングビヘイビアクラス内では、updateTarget()およびupdateSource()のメソッドをオーバーライドすることで、プロパティの値を代行受信できます。例:

const interceptMethods = ['updateTarget', 'updateSource', 'callSource']; 

export class InterceptBindingBehavior { 
    bind(binding, scope, interceptor) { 
    let i = interceptMethods.length; 
    while (i--) { 
     let method = interceptMethods[i]; 
     if (!binding[method]) { 
     continue; 
     } 
     binding[`intercepted-${method}`] = binding[method]; 
     let update = binding[method].bind(binding); 
     binding[method] = interceptor.bind(binding, method, update); 
    } 

    binding.updateTarget = value => { 
     //do something with value; 
    } 

    binding.updateSource = value => { 
     //do something with value; 
    } 
    } 

    unbind(binding, scope) { 
    let i = interceptMethods.length; 
    while (i--) { 
     let method = interceptMethods[i]; 
     if (!binding[method]) { 
     continue; 
     } 
     binding[method] = binding[`intercepted-${method}`]; 
     binding[`intercepted-${method}`] = null; 
    } 
    } 
} 
+0

Fabio、ご意見ありがとうございます。しかし、bind()が呼び出された時点で、 'updateTarget'はソースの_initial_値を取得するためには動作しません。値が_changes_のときのみ呼び出されます。 –

関連する問題