我需要遍歷子視圖集合(其中是UI小工具),並告訴他們從應用程序中刪除自己。我要確保所有的childViews存在集合中,但是這個代碼將只在少數的childViews /部件的同時調用removeIfSelected():Ember:迭代通過子視圖
widgets = container.get('childViews')
widget.removeIfSelected() for widget in widgets
例如,如果有3個窗口小部件,第一次運行(通過刪除按鈕)2個小部件被刪除。我必須再次單擊該按鈕才能刪除最後一個小部件。
如果有2個,它將刪除一個小部件。如果有4個或更多,除了2個小部件都將被刪除,而我必須再次單擊刪除2次以刪除最後兩個小部件。
我最初的解決方案是運行循環3次,以保證所有小部件都被刪除,但是這並沒有通過代碼審查,我不得不尋找一個真正的解決方案。我不確定這是咖啡問題還是Ember.js問題。我如何確保循環完全執行?
不能相信我忽略了這個。克隆方法非常完美。謝謝。 – unmuse
我想你可以使用內置的ember.js函數toArray(),'container.get('childViews')。toArray())作爲克隆方法。 –