有人可以创建一个示例,说明如何使用使用 AJAX 的工厂或服务从 Controller 外部设置 $scope 变量吗?
每次我尝试 AJAX 变量都返回未定义,因为请求尚未返回,因此 $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;
})
});
关于javascript - 从 AngularJS 中的工厂/服务修改 $scope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26764706/