Ember.js에 고정 길이 어레이 컨트롤러를 구현하려고하고 있는데 목록에서 첫 번째 항목을 제거하도록하고 있습니다 용량을 초과합니다. 내 시도는 아래에 있지만 오류로 인해 실패하고 있습니다.Ember.js에서 선입 선출 고정 길이 어레이 컨트롤러 구현
EDIT : 지금 http://jsfiddle.net/EsF4R/39/
에서 간단한 jsFiddle가 나는 어레이 제어기와 관련된 뷰를 갖는다. 나는이 오류가 시야에 있다고 믿는다. 제거하면 오류가 사라지고 첫 번째 객체가 튀어 나옵니다. (참고 : FIFO 기능을 구현할 때까지보기가 정상적으로 작동했습니다.)
또한 pop 루프 함수 (Ember.run (...))에 popFirst 함수의 내용을 넣으려고했습니다.
누구든지이 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/
당신이 App.ItemView의 코드를하시기 바랍니다 게시 할 수 없습니다 :이 예제를 참조하십시오? 아니면 Jsfiddle을 더 좋아합니까? –
이것이 문제를 해결할 것이라고 생각하지 않지만 각 작품 대신 컬렉션을 사용하는지 확인하십시오. '{{#collection elementId = "fifo-pool"contentBinding = "MyApp.fifoController"itemViewClass = "MyApp.ItemView"} }' –
위의 질문을 편집하여 jsFiddle에 대한 링크를 포함 시켰습니다. http://jsfiddle.net/EsF4R/38/ –