APIからデータを取得するカスタムモジュールがあります。それは非同期なので、遅延を使用します。
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/
改善できますか?