このように:https://github.com/errisy/bindable/blob/master/README.mdjavascript/typescriptにデータバインディングとイベントフレームワークをオブジェクト化するオブジェクトがありますか?
単純なタイプスクリプトデコレータでデータバインドを設定します。
パス変更検出によるバインドとイベントの弱い参照。
すべてのバインディングとイベントは、「弱参照」のITriggerとして保持されます。 ITrigger.targetがundefinedに設定されると、ITriggerは呼び出し元によって削除されます。
A.branch.valueにA.propertyがバインド(またはA.methodがリッスン)する場合、A.branchが変更されている場合、パスの変更はバインディングホストとリスナーのいずれかによって検出できます。以前のバインディングを無効にして新しいバインドをリッスンして設定し、新しく割り当てられたブランチを聞くには、以前のITriggerのITrigger.targetをundefinedに設定します。
@obs.bindable
class Person {
@obs.property
public Name: string;
@obs
.bind(()=>Person.prototyope.Name.FirstName)
.before(()=>Person.prototype.beforeFirstNameChange)
.after(()=>Person.prototype.FirstNameChanged)
.property
public FirstName: string;
@obs.event
public beforeFirstNameChange =() => {
console.log('before first name is changed.');
}
@obs.event
public FirstNameChanged =() => {
console.log('first name is changed.');
}
}
@obs.bindable
class Name{
@obs.property
public Surname: string;
@obs.property
public FirstName: string;
}
let p = new Person();
p.FirstName = 'Jack'; // p.Name.FirstName will change as well.
このフレームワークは素晴らしいかもしれませんが、これは広告する場所ではありません。 –
ここであなた自身の質問をするのは問題ありませんが、a)回答は質問の一部ではなく回答として掲示する必要があり、b)通常の品質要件 – Flexo