我有从 api 获取数据的自定义模块。它是异步的,所以我使用 defer 。
angular.module('module', []).factory('api', function($q){
var $scope;
return {
setScope: function(scope){ $scope = scope; },
getPic:function(){
var def = $q.defer();
$.ajax({
url: 'https://graph.facebook.com/shaverm/picture?redirect=false',
dataType: 'jsonp',
success: function(r){
def.resolve(r.data.url);
$scope.$apply();
},
});
return def.promise
}
}
});
它工作正常,但我担心在模块中使用 scope.$apply 。
这是示例http://jsfiddle.net/mfbFs/
可以改进吗?