我已經初始化骨幹集合,但在集合上調用調用不起作用。出於某種原因,我得到JS錯誤:在主幹集合上調用調用
var vw = new SomeView(); // A view with function 'refresh'
var col = new Backbone.Collection();
col.add(vw);
...
setTimeout(function(){ col.invoke('refresh'); }, 1000); // Error: Cannot call method 'apply' of undefined
然而,像的isEmpty調用方法工作正常
console.log("Is empty? ", col.isEmpty()); // prints: 'Is Empty? false'
我似乎失去了一些東西很明顯。
N.B:我不感興趣,呼籲每個功能,然後調用視圖對象刷新,因爲這只是笨拙。
除了骨幹網收集的其他好處(比如在對集合進行更改時引發的事件),調用_invoke_等方法使代碼更具可讀性。我明顯的替代方法是使用**每個**方法。無論如何感謝您的幫助。 – Waseem
如果您需要調用,請使用下劃線colleection.invoke方法http://documentcloud.github.com/underscore/#invoke –
明白了。你是對的,當添加到集合中時,視圖變成了一些模型,因此** invoke **不會找到函數**刷新**,除非您**從內部模型實例中獲取**並手動調用它。我已經切換到簡單數組作爲我的數據存儲,並使用下劃線的** invoke **方法調用。謝謝您的幫助。 – Waseem