2012-10-03 32 views
2

這是將字典作爲主文檔的子項添加的功能。

addSubItem = function(id, data) { 
    s = Item.findOne(id); 
    if(s){ 
    Item.update({_id:id},{$push:{'subItemsList':data}}); 
    } 
}; 

我驗證過的數據,是一個有效的主文檔ID的分項數據。

data = {num:1, value: 'Subitem1'}; 

這昨天精品與流星(0.4.2)的最新版本,但今天我會在JavaScript控制檯此消息:

Error: Cannot apply $push modifier to non-array 

我創建和安裝一個新的項目,我仍然得到一樣的。

回答

1

由於勞合社,尼斯的解決方法和感謝JavaScript的速成班(我就可以了初學者),但我找到了解決辦法:(注意「$推」 )

addSubItem = function(id, data) { 
    s = Item.findOne(id); 
    if(s){ 
    Item.update({_id:id},{"$push":{'subItemsList':data}}); 
    } 
}; 
0

試試這個:

addSubItem = function(id, data) { 
    s = Item.findOne(id); 
    if(s){ 
    s.subItemsList = s.subItemsList || []; 
    s.subItemsList.push(data); 
    Item.update(id, s); 
    } 
}; 
+0

謝謝,但是 s.subItemsList = data; 覆蓋subItemsList,並且以前的行爲是將新的「數據」添加到現有數組(subItemsList)。 –

+0

對不起,編輯答案。 – Lloyd

+0

在行s.subItemsList.push(data); s.subItemsList沒有推送方法。 –

相關問題