Ember.js に固定長配列コントローラーを実装しようとしていますが、リストが容量を超えたときに最初の項目を削除するようにしています。私の試みは以下のとおりですが、エラーで失敗しています。
編集: http://jsfiddle.net/EsF4R/39/に単純な jsFiddle があります。
アレイ コントローラに関連付けられたビューがあります。エラーはビューによるものだと思います。削除すると、エラーがなくなり、最初のオブジェクトをポップアウトできます。(注: FIFO 機能を実装するまでは、ビューは正常に機能していました。)
また、popFirst 関数の内容を実行ループ (Ember.run(...)) に入れてみました。
このfifo配列を実装してビューを引き続き機能させる方法を知っている人はいますか?
MyApp.fifoController = Ember.ArrayController.create({
content: [],
popFirst: (function() {
if (this.get('length') >= 3) {
return this.removeObject(this.get('firstObject'));
}
}).observes('length')
});
<div id="fifo-pool">
{{#each MyApp.fifoController}}
{{#view MyApp.ItemView contentBinding="this"}}{{/view}}
{{/each}}
</div>
Error:
Uncaught TypeError: Cannot call method '_insertElementLater' of undefined genigames/vendor/ember:16704
DOMManager.after genigames/vendor/ember:16704
Ember.ContainerView.Ember.View.extend._scheduleInsertion genigames/vendor/ember:14708
Ember.ContainerView.states.hasElement.childViewsDidChange genigames/vendor/ember:14765
Ember.View.Ember.Object.extend.invokeForState genigames/vendor/ember:12902
Ember.ContainerView.Ember.View.extend.childViewsDidChange genigames/vendor/ember:14687
...
編集: http://jsfiddle.net/EsF4R/39/に単純な jsFiddle があります。