以下は、angularjs サービスのコードの一部です。ただし、角度に固有の質問ではないかもしれません。
リターンの$http.get('/api/test/1').then ( ...
約束と私は、コールバックによって返されたデータを処理するのが好きです。フィルター メソッドにアクセスするとエラーが発生します。
Test.filter(data.Root);
TypeError: Object #<Object> has no method 'filter'
data
しかし、同じスコープ (前の行) で変数にアクセスできました。
var testApp = angular.module('testApp.services', []);
testApp.factory('Test', function ($http, $rootScope) {
var Test = {};
var data = [];
Test.filter = function (d) {
ret = data.filter(function (el) {
return el.Pid == d.Id;
});
return ret;
};
Test.data = function () {
return data[1];
};
Test.start = function () {
Test.asyncData = $http.get('/api/test/1')
.then(function (response) {
data = response;
return Test.filter(data.Root);
}, function (response) {
Test.error = 'Can\'t get data';
data = 'Error: ' + response.data;
return data;
});
};
return Test;
});