如何一次性將所有值添加到observableArray
?在我的情況下,在循環中添加值非常慢。這裏是jsfiddle的例子。 jsfiddleknockout observableArray性能
7
A
回答
7
既然你清除出整個觀察到的數組,你可以做到這一點的一個方法是:
var viewModel = {
name: "base",
addingValue:new ko.observable(),
someArr: new ko.observableArray(["123","432","sdafasd","xrere"]),
add: function()
{
this.someArr.push(this.addingValue());
},
updateSomeArr:function()
{
var temp = [];
for(var i=0;i<5;i++)
{
temp.push("555565");
}
this.someArr(temp);
}
}
3
已經有一個選定的答案,但我認爲下面會有所幫助。你可以通過執行您觀察到的陣列,以獲得潛在的數組實現禁用觀察行爲:
然後,您可以將項目添加到underlyingArray
沒有發射過someArr
事件。一旦你完成添加項目,請致電:
viewModel.someArr.valueHasMutated();
這將導致觸發事件,通知所有觀測依賴viewModel.someArr()。
17
var myArray = ko.observableArray([]);
var valuesToInsert = [1,2,3];
myArray.push.apply(myArray, valuesToInsert);
就是這樣
相關問題
- 1. Knockout ObservableArray
- 2. $ .getJSON不能傳入knockout observableArray
- 3. knockout observableArray訪問
- 4. Knockout not create and observableArray
- 5. 更新Knockout observablearray項目屬性
- 6. Knockout Filter針對另一個observableArray的observableArray
- 7. knockout可觀察數組observablearray
- 8. Knockout observableArray沒有綁定
- 9. observableArray的Knockout js副本
- 10. Knockout observableArray沒有更新
- 11. Knockout ObservableArray不更新HTML Foreach
- 12. Knockout JS ObservableArray丟失值
- 13. Knockout observableArray vs WebApi Odata服務
- 14. Knockout從observableArray獲取對象
- 15. Knockout刷新html中的observableArray
- 16. Knockout - 更新模型的observableArray
- 17. Knockout observableArray foreach不起作用
- 18. Knockout JS - 在observableArray中修改項目的屬性
- 19. ObservableArray中的Knockout更新變量
- 20. knockout observableArray元素不更新視圖
- 21. Asyncronous knockout observableArray選擇選項加載
- 22. 將Knockout observableArray JSON保存到localStorage
- 23. 添加/刪除Knockout observableArray嵌套元素
- 24. Knockout js observableArray沒有得到更新
- 25. Knockout嵌套的observableArray沒有綁定
- 26. 在Knockout中從observableArray中移除自我?
- 27. 在knockout js observableArray中加入函數?
- 28. 在observableArray Knockout JS中切換值?
- 29. Knockout observableArray數據綁定不被更新
- 30. Knockout observableArray不更新多視圖模型
我對項目添加到陣列的性能問題,你應該使用一個音符ARRAY_NAME [array_name.length-1] =您的項目;這條線比推送方法快 – Marwan
差異真大嗎? – Neir0
我覺得是這樣看這篇文章 http://www.scottlogic.co.uk/2010/10/javascript-array-performance/ 和對不起,我誤以爲它的array_name [array_name.length] =您的項目 – Marwan