$http.put的成功函数无法访问正在调用的服务范围.我需要在PUT请求的回调中更新服务的属性.
原文链接:https://www.f2er.com/angularjs/142891.html这是我正试图在服务中做的一个例子:
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,config) { alert(data); }); } }
对不起,如果在JS中有一些错误,主要是如何从成功回调内部访问服务范围?
编辑:虽然这个问题的答案是正确的,但我切换到工厂方法,Josh和Mark建议