1

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;
});

だから私はこれについていくつか質問があります:

  1. 変数の変更がテンプレートの変更を反映しないのはなぜですか?
  2. テンプレートは、私がやっている方法を更新することになっていませんか? それとも、mdv/polymer が意図したとおりに機能していないのでしょうか?
  3. テンプレートの更新を手動でトリガーすることは可能ですか?
  4. 一方向から双方向のデータバインディングに簡単に変換することは可能でしょうか (つまり、疑似コードの Person クラスを監視可能にするか、何かによって)?

PS私はここに投稿する前にいくつかのことを検索して試しました. カスタム ポリマー要素を作成するトピックを見つけました。私はまた、派手な構文のライブラリ(これはそれを改善しませんでした)とデータバインダー(コンパイルエラー)を試しました。Polymerに関するいくつかのページも読みましたが、何が dart に関連しており、廃止されていないか (または、ページの上の警告が言及しているように「古い」) がわかりません。

4

1 に答える 1