Dartでデータバインディングを機能させようとしています。基本的にはこのビデオと同じことをしています。擬似コードを使用すると、次のようになります。
mdv.init();
var p = new Person('john');
query('#someId').model = p;
HTMLファイルには、正しく機能するテンプレートもあります。今のところ、一方向のデータバインディングを機能させようとしているだけで、テンプレートは正しく初期化されていますが、変数 p へのその後の変更はテンプレートに表示されません。このような更新をトリガーしようとしました
node.model = null;
node.model = p;
ただし、これは更新をトリガーしません。しかし、遅延を使用している場合は機能します:
node.model = null;
new Timer(new Duration(milliseconds:20),(){
node.model = p;
});
だから私はこれについていくつか質問があります:
- 変数の変更がテンプレートの変更を反映しないのはなぜですか?
- テンプレートは、私がやっている方法を更新することになっていませんか? それとも、mdv/polymer が意図したとおりに機能していないのでしょうか?
- テンプレートの更新を手動でトリガーすることは可能ですか?
- 一方向から双方向のデータバインディングに簡単に変換することは可能でしょうか (つまり、疑似コードの Person クラスを監視可能にするか、何かによって)?
PS私はここに投稿する前にいくつかのことを検索して試しました. カスタム ポリマー要素を作成するトピックを見つけました。私はまた、派手な構文のライブラリ(これはそれを改善しませんでした)とデータバインダー(コンパイルエラー)を試しました。Polymerに関するいくつかのページも読みましたが、何が dart に関連しており、廃止されていないか (または、ページの上の警告が言及しているように「古い」) がわかりません。