编辑:如果在没有发布更多代码的情况下很难排除故障,请告诉我,我可以在问题中添加更多内容。
我有两个基本相同代码的实例,其中一个是工作而另一个不是。
工作正常:
$scope.update = function() {
var question = $scope.question;
question.$update(function() {
$location.path('questions/' + question._id);
});
};
无效:
$scope.updateAnswer = function() {
var answer = $scope.answerEdited;
answer.$update(function() {
$location.path('questions/' + $routeParams.questionId);
});
$scope.toggleEditAnswer(answer);
};
我收到错误: undefined不是我$update
函数中的函数。这是我的资源:
angular.module('intquestApp')
.factory('Answers', function ($resource) {
return $resource('api/answers/:answerId', {
answerId: '@_id'
}, {
update: {
method: 'PUT'
}
});
});
我究竟做错了什么?如果我正确理解了流程,answer.$update
会以某种方式使用资源吗?另外,如果我使用console.log
来查看正在更新的answer
,那么它是正确的:
Resource {_id: "543d8896039390eb5e000001", created: "2014-10-14T20:33:26.514Z", creator: Object, questionid: "543d8693994fc1685d000001", __v: 0…}
我该如何解决这个问题?
答案 0 :(得分:2)
您可以尝试以下操作并检查它是否有效吗?
$scope.updateAnswer = function() {
Answers.update($scope.answerEdited, function(response) {
$location.path('questions/' + $routeParams.questionId);
});
$scope.toggleEditAnswer(answer);
};