我创建了一个工厂来为我的应用程序提供数据
myApp.factory('dataRepository', function ($resource) {
return {
getApplicationErrors: function (applicationName) {
return $resource('/api/DataSource/GetApplicationErrors').query();
},
}
我已将数据访问从使用 $http、$q 更改为使用 $resource 为:
旧的实现
var deffered = $q.defer();
$http.get('/api/DataSource/GetApplicationErrors').success(deffered.resolve).error(deffered.reject);
return deffered.promise;
新的实施
$scope.exceptions = dataRepository.getApplicationErrors($routeParams.applicationName);
现在,如果在获取我的数据时出现错误,我想显示一个错误。
所以当我有旧的实现时,我有两个回调要连接,现在我不确定如何实现它。我的想法是:
myApp.controller("ErrorListController",
function ErrorListController($scope, dataRepository) {
dataRepository.getApplicationErrors('test')
.$promise
.then(function (data) {
$scope.exceptions = data;
}, function(error) {
$scope.errorMessage = 'Failed to load data from server';
});
});
问题
连接 $resource 成功/失败的正确方法是什么?
可能的答案
添加成功和失败的回调函数,但我不认为这是解决方案。