2

1.0-pre4 で奇妙な動作が発生しています。Ember.ContainerView経由でテンプレートに を追加しました{{view Ember.ContainerView viewName="dashboardView"}}。ビューをそのchildViews配列にプッシュすると、DOM が更新されません。これはpre2で機能していました。

ここにjsfiddleがあります。さらに奇妙なのは、childViews.length更新されないように見えることです...または、テンプレートからの直接出力と、プッシュ直後に更新されるchildViewCountからの直接出力を見ると、更新されますが更新されません(?!?) 2 つのビュー。

アップデート

以下の答えは正しかったです。私の jsfiddle は.pushObjectではなくを使用する必要がありまし.push()たが、元のコードは実際には を使用してい.pushObjectました。代わりに、Firefox 10 のバグのように見えます。回答のコメントを参照してください。

更新 2

マスターに対して確認され、問題番号 1952が提出されました。

4

1 に答える 1

4

バインディングが機能するように、同等の EmberJS を使用していることを確認する必要があります。あなたが使用した例pushでは、 とほぼ同じように動作しますpushObjectが、pushObjectKVO 準拠 (キー値の観察/バインディング) であるため、Ember はそのことを行うことができます。

これを反映するために JSFiddle を更新しましたが、再び機能しています: http://jsfiddle.net/RCLd7/8/しかし、私が変更pushpushObjectたのは 2 か所の変更だけです。Emberを使用する場合、Ember はによって自動的に通知されるのではなく、変更を検出pushするためにポーリングを導入する必要がありますが、これはありませんpushObject

ネイティブ JavaScript メソッドと同等の Ember メソッドのその他の例:

  • ネイティブ: push, vs. Ember:pushObject
  • ネイティブ: pop, vs. Ember:popObject
  • ネイティブ: unshift, vs. Ember:unshiftObject
于 2013-01-29T16:50:09.030 に答える