1
有人可以創建一個示例,說明如何使用工廠或使用AJAX的服務從控制器的外部設置$ scope變量?
每當我嘗試過AJAX變量返回undefined,因爲請求還沒有返回,所以$scope.var
是未定義的。在AJAX請求返回後,即使我從Controller調用服務,$scope.var
仍未定義。請幫忙。
有人可以創建一個示例,說明如何使用工廠或使用AJAX的服務從控制器的外部設置$ scope變量?
每當我嘗試過AJAX變量返回undefined,因爲請求還沒有返回,所以$scope.var
是未定義的。在AJAX請求返回後,即使我從Controller調用服務,$scope.var
仍未定義。請幫忙。
請看演示這裏http://plnkr.co/edit/JcRY8uHRYaHH33UTH7Bt?p=preview
var app = angular.module("myapp", []);
app.service("dataService", function($http, $q) {
var data = [];
function getData() {
var deffered = $q.defer();
var request = {
url: 'data.json',
method: 'GET'
};
$http(request).then(sucess, error);
function sucess(response) {
deffered.resolve(response.data);
}
function error() {
deffered.reject();
}
return deffered.promise;
}
return {
data: data,
getData: getData
}
})
app.controller('MyControl', function($scope, dataService) {
$scope.data = [];
dataService.getData().then(function(response) {
$scope.data = response;
})
});
感謝您花時間寫出所有代碼招。 – user3704920 2014-11-17 20:38:09
你能告訴我們到目前爲止你已經嘗試了什麼?可能的重複http://stackoverflow.com/questions/22898927/injecting-scope-into-an-angular-service-function – lexith 2014-11-05 18:51:45
這裏是你的一個例子:http://stackoverflow.com/a/26657303/949476。服務方法'userService.getUsers'返回promise。然後在控制器中做這樣的事情:'userService.getUsers()。then(function(users){$ scope.users = users;});' – dfsq 2014-11-05 18:54:23