2013-06-27 29 views
1

我循環通過使用Ember.Array#lastObject屬性的數組:emberjs get('lastObject')bug?

while (last = this.get('clickViews.lastObject')) { 
    // perform some actions to last 
    this.get('clickViews').removeObject(last); 
} 

當從clickViews陣列的所有對象已被刪除,this.get(「clickViews.lastObject」)仍返回一個對象。如何獲得'lastObject'或從數組中刪除對象有什麼問題嗎?

+0

您是否嘗試過在我的答案中提出的解決方案?它工作? – intuitivepixel

+0

@intuitivepixel感謝您的檢查。原來的問題是由於我認爲是Ember.Array的一個錯誤。無論我如何迭代數組,它都不起作用。我認爲發生的實際上是這樣的:由於緩存問題,在瀏覽器窗口上下文中加載了兩個版本的ember.js。請從我之前看到這個類似的問題:http://stackoverflow.com/questions/16773229/emberjs-geteach-method-does-not-work-as-expected –

回答

0

這似乎是一個cacheing問題有多個版本的瀏覽器窗口範圍內加載emberjs的,因爲類似的回答這個問題:emberjs getEach method does not work as expected

我通過清除瀏覽器歷史記錄解決問題和軌道預編譯的TMP文件。

0

也許你應該這樣做。看到這裏工作jsbin

while (this.get('clickViews.lastObject') !== undefined) { 
    // perform some actions to last 
    this.get('clickViews').removeObject(this.get('clickViews.lastObject')); 
} 

希望它有幫助。

+0

我給的例子只是說明循環; while循環我正在對每個對象執行其他操作(我將相應地編輯我的示例)。 'lastObject'或'firstObject'不返回'undefined',它似乎返回任何最後或第一個對象。 –

+0

@ SeanX.Yu看到我更新的答案也許現在適合你,我還添加了一個僞jsbin:http://jsbin.com/axuzat/1/edit,顯示它的工作。 – intuitivepixel