angular.module('app').factory('mvsomeManager',
function ($q, $http, mvSomething){
return{
getsomedata:function(){
var data = mvSomething.query();
if(response){
dfd.resolve(response);
}else{
dfd.reject({reason:"error"});
}
return dfd.promise;//No data is returned
};
});
//usage
angular.module('app').controller('mvsomelCtrl', function ($scope, mvsomeManager,mvSomething){
//same thing in factory but now it returns list without problem
$scope.querydata = mvSomething.query();//This works
$scope.querydata = mvsomeManager.getsomedata();//This does not works!
});
你能不在工厂打电话询问吗?我可以使用$ save,$ update在工厂上调用Delete,put等。但只是不能使用GET(查询)来返回数据列表。仅适用于控制器。
答案 0 :(得分:1)
您有一个同步的操作(getsomedata
)而另一个(.then()
)是延迟的。因此,您需要使用//this call is synchonous
$scope.querydata = mvSomething.query();//This works
//this call is async
mvsomeManager
.getsomedata()
.then(onGetDataSuccess, onGetDataError);
function onGetDataError(error){
alert('error, please check console logs');
console.error(error);
}
function onGetDataSuccess(data){
$scope.querydata = data;
}
来访问数据。
{{1}}