2

メインドキュメントのサブアイテムとして辞書を追加する機能です。

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

渡されたデータを確認し、サブアイテムデータの有効なメインドキュメントIDです。

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

これは昨日最新バージョンのmeteor(0.4.2)で正常に機能しますが、今日はjavascriptコンソールで次のメッセージが表示されます。

Error: Cannot apply $push modifier to non-array

新しいプロジェクトを作成してセットアップしましたが、それでも同じです。

4

2 に答える 2

1

ロイドのおかげで、素晴らしい回避策とjavascriptクラッシュコース(私はそれを始めたばかりです)に感謝しますが、私は解決策を見つけました:(「$ push」に注意してください)

addSubItem = function(id, data) {
  s = Item.findOne(id);
  if(s){
    Item.update({_id:id},{"$push":{'subItemsList':data}});
  }
};
于 2012-10-04T13:27:56.270 に答える
0

これを試して:

addSubItem = function(id, data) {
  s = Item.findOne(id);
  if(s){
    s.subItemsList = s.subItemsList || [];
    s.subItemsList.push(data);
    Item.update(id, s);
  }
};
于 2012-10-03T16:47:03.730 に答える