2015-09-18 78 views
0

我想對每個選中的複選框進行更新。循環中的流星更新

所以我做了for-loop。但這不起作用,因爲只有一些元素得到更新。我認爲for循環比更新更快。

我可以發送一個包含所有_id的數組到update()來工作嗎?

var inputFields = e.target.parentNode.parentNode.getElementsByTagName('input'), 
    newId = 123; 

for(var i = 0; i < inputFields.length; i++) { 
    if (inputFields[i].type == 'checkbox' && inputFields[i].checked == true) { 
     Articles.update({_id: inputFields[i].getAttribute('data-id')}, {$set: { parent: newId }}); 
    } 
} 

回答

0

你可以使用使用$inmulti運營商更新查詢的數組。閱讀更多關於$in運營商here

Articles.update({_id: {$in : inputFieldsArray} }, {$set: { parent: newId }}, { multi : true}); 
+0

請注意'multi:true'只適用於服務器。如果你想在客戶端進行更新,你必須一次處理一個文件,並通過'_id'選擇它 –

+0

@MichelFloyd我會做一個方法調用來在服務器上執行更新。 – user3848987