カスタム属性にバインドされたオブジェクト固有のプロパティの変更イベントを監視しようとしています。私はこのためにbindable
タグを使用します。上記の例Aurelia:バインドされたオブジェクト(カスタム属性)の特定のプロパティを観察する方法
オブジェクト
var information = {
name: 'foo',
description: 'bar',
age: 12
};
要素
<div my="info: information;"></div>
属性
@customAttribute('my')
export class MyCustomAttribute {
@bindable({
changeHandler: 'change'
})
public info: any;
private change(): void {
console.log('info has changed')
}
}
一度だけ変更ハンドラを起動します。しかし、info
オブジェクトのプロパティの1つが変更されるたびに呼び出す必要があります。私のユースケースでは、どのプロパティが変更されるかは関係ありません。プロパティが変更されたときに知る必要があります。
どのようにすればいいですか?
FYI =>別のアプローチは、オブジェクトを使用する代わりに、ビューモデルで別のプロパティを作成し(その上にバインド可能なタグを使用する)、属性の配管を行うため、 HTMLで面倒な(プロパティの量のために)。
はおそらく(例えばhttps://ilikekillnerds.com/2015/10/observing-objects-and-arrays-in-aurelia/)カスタムオブザーバーを探しています。リンクは少し古くなっていますが、おそらく何を探すべきかのヒントがあります。 –