頭をかいてしまう奇妙なバグがあります。
入力するたびにコントローラーを新しくする Ember.State があります。
show: Ember.State.extend({
enter: function(manager, transition) {
this._super(manager, transition);
var contact = App.store.find(App.Contact, App.appController.get('params'));
App.set('selectedContactController', App.SelectedContactController.create({}));
//TODO: Why do I have to do this when I have just called create?
if(App.getPath('selectedContactController.content') && App.getPath('selectedContactController.content.length') > 0){
App.setPath('selectedContactController.content', Ember.A());
}
コードの別の部分では、データ ストアから読み込まれる配列にコントローラーのコンテンツを設定します。
この質問を書いている行の上にコメントを入れました。create を呼び出しても、コンテンツ コレクションをクリアする必要があります。これは私を混乱させました。
SelectedContactController は次のようになります。
App.SelectedContactController = Ember.ArrayProxy.extend(App.FeedScroller, {
content プロパティは、次のような App.FeedScroller mixin から取得されます。
App.FeedScroller = Ember.Mixin.create(Ember.Evented, {
content: Ember.A(),
create({}) が呼び出されたときに content プロパティが破棄されない理由を知っている人はいますか?