【发布时间】:2015-06-17 14:03:20
【问题描述】:
我想问/讨论这是好的还是坏的做法 - 在控制器中进行服务调用的优点和缺点是什么?尽可能干净和简短。换句话说:不再有回调,而是利用 Angular 的 Angular 绑定原则。
看看我 fork 的 Plnkr: http://plnkr.co/edit/zNwy8tNKG6DxAzBAclKY
我想实现 Plnkr 第 42 行注释掉的内容 > $scope.data = DataService.getData(3);。
app.factory('DataService', function($q, $http) {
var cache = {};
var service= {
data:{src:''},
getData: function(id, callback) {
var deffered = $q.defer();
if (cache[id]) {
service.data.src = 'cache';
deffered.resolve(cache[id])
} else {
$http.get('data.json').then(function(res) {
service.data.src = 'ajax';
cache[id] = res.data;
cache[id].dataSource = service.data.src;
deffered.resolve(cache[id])
})
}
return deffered.promise.then(callback);
}
}
return service
})
app.controller('MainCtrl', function($scope, DataService) {
DataService.getData(3, function(result) {
$scope.data = result;
});
//$scope.data = DataService.getData(3);
});
【问题讨论】:
标签: angularjs callback controller promise angular-promise