【发布时间】:2014-04-20 01:26:11
【问题描述】:
我想在调用资源删除后更新$scope。资源定义为
meanApp.factory('Group', function ($resource) {
return $resource('/api/v1/groups/:groupId', {groupId: '@_id'}, {
update: { method: 'PATCH'}
});
});
ui-router 控制器:
resolve: {
groups: ['Group', function (Group) {
return Group.query();
}
]
},
controller: function ($scope, groups) {
$scope.myData = groups;
$scope.deleteGroup = function (group) {
group.$delete(function(data){
group.$query().then(function(data) {
$scope.groups = data;
})
});
}
}
删除有效,删除回调中的$query也被称为返回正确的结果。但是后来我得到一个异常并且范围没有刷新。
TypeError: undefined is not a function
at http://www.example.com:3000/lib/angular-resource.js:487:47
at Array.forEach (native)
at forEach (http://www.example.com:3000/lib/angular.js:309:21)
at $http.then.value.$resolved (http://www.example.com:3000/lib/angular-resource.js:486:37)
角度资源代码问题似乎是该值未定义
if (action.isArray) {
value.length = 0;
forEach(data, function (item) {
value.push(new Resource(item));
});
编辑
如果我使用类语法而不是实例语法,它会起作用:
$scope.deleteGroup = function (group) {
group.$delete(function(data){
Group.query().$promise.then(function(data) {
$scope.groups = data;
})
});
}
【问题讨论】:
标签: angularjs