我正在尝试使用服务制作基本数据,并在我有数据时将其打印在屏幕上,但有些东西无效。
我的服务:
mymodule.factory('MyService', function($http, $q) {
var service = {
getData: function() {
var dfd = $q.defer();
$http.get(apiServerPath).success(function (data) {
dfd.resolve(data);
});
return dfd.promise;
}
}
return service
}
我的控制器:
mymodule.controller('myCtrl', ['$scope', 'MyService', function($scope, MyService) {
$scope.myvar = MyService.getData();
}
HTML
<div> {{myvar}} </div>
我可以从浏览器控制台看到 -
答案 0 :(得分:5)
从Angular 1.2开始,Promise不再自动解包。在您的控制器中执行以下操作:
mymodule.controller('myCtrl', ['$scope', 'MyService', function($scope, MyService) {
MyService.getData().then(function success(data) {
$scope.myvar = data;
});
}