0
カスタムバインディングの方法でソースの現在の値をどのように確認できるか知っていますか?次のようにカスタムバインディングのバインドメソッドでソースの現在の値を確認する方法
bind
方法が定義される:
bind(binding, scope, [args...])
bind
が呼び出されると、Iは結合に関与しているのviewmodelプロパティ(ソース)の値を知りたいです。
ありがとうございました。
カスタムバインディングの方法でソースの現在の値をどのように確認できるか知っていますか?次のようにカスタムバインディングのバインドメソッドでソースの現在の値を確認する方法
bind
方法が定義される:
bind(binding, scope, [args...])
bind
が呼び出されると、Iは結合に関与しているのviewmodelプロパティ(ソース)の値を知りたいです。
ありがとうございました。
カスタムバインディングビヘイビアクラス内では、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;
}
}
}
Fabio、ご意見ありがとうございます。しかし、bind()が呼び出された時点で、 'updateTarget'はソースの_initial_値を取得するためには動作しません。値が_changes_のときのみ呼び出されます。 –