a 的成功函数$http.put
无权访问this
它在内部被调用的服务范围。我需要在 PUT 请求的回调中更新服务的属性。
这是我在服务中尝试做的一个简化示例:
var myApp = angular.module('myApp', function($routeProvider) {
// route provider stuff
}).service('CatalogueService', function($rootScope, $http) {
// create an array as part of my catalogue
this.items = [];
// make a call to get some data for the catalogue
this.add = function(id) {
$http.put(
$rootScope.apiURL,
{id:id}
).success(function(data,status,headers,config) {
// on success push the data to the catalogue
// when I try to access "this" - it treats it as the window
this.items.push(data);
}).success(function(data,status,headers,config) {
alert(data);
});
}
}
对不起,如果JS中有一些错误,主要是我如何从成功回调内部访问服务范围?
编辑:虽然这个问题的答案是正确的,但我改用factory
了 Josh 和 Mark 推荐的方法