当我收到以下错误时,尝试向我的收藏集中添加内容:
Exception while invoking method 'submit' Error: key $$hashKey must not start with '$'
每餐对象:
$scope.meal = {
items:[],
createdBy:null
};
这是我的控制器中的提交功能:
$scope.submit = function() {
var currentUserId = Meteor.userId();
if(currentUserId!=null) {
if($scope.checkValidity()==false) {
alert("Need to fill out valid calories and/or items!");
}
else {
$scope.meal.createdBy = currentUserId;
Meteor.call("submit", $scope.meal);
alert("has just been submitted");
}
}
else {
alert("You must sign in first!");
}
}
我已多次检查我的提交功能,但我似乎无法找到错误。我已经看了谷歌以及这个错误,它似乎有点超过我的头,特别是因为我仍然是一个角度初学者。与此同时,我将尝试寻找更多信息。
找到一些信息:https://github.com/Urigo/angular-meteor/issues/299
好像他们从评论中解决了这个问题?然而同样的问题出现了......检查一下。
答案 0 :(得分:4)
将一个对象添加到用餐项目中,尝试使用:
$scope.meal.items.push(angular.copy($scope.newItem));
当你打电话
Meteor.call("submit", angular.copy($scope.meal));
这是因为angular使用引用来跟踪对象