谁应该显示成功消息并重定向用户。目前成功时,服务显示成功消息并重定向用户或应该通过ctrl完成。问题是关注分离。
控制
$scope.save = function (entry) {
MyService.save(entry);
};
服务
$http.post('/groups', data)
.success(function (data, status, headers, config) {
Notiy('saved');
RouteFactory.back();
})
.error(function (data, status, headers, config) {
Notiy('Failed');
});
答案 0 :(得分:0)
根据@ S0lll0s的回答,我选择了一种更简洁的承诺解决方案
<强>服务强>
var request = $http({
method: "delete",
url: '/group/' + id
});
return (request.then(handleSuccess, handleError));
<强>控制器强>
MyService.save(data)
.then(function () {
RouteFactory.back();
}, function () {
Notify('failed');
});
};
答案 1 :(得分:-1)
为什么不传递回调参数?
$http.post('/groups', data)
.success(function (data, status, headers, config) {
callback(null, data);
RouteFactory.back();
})
.error(function (data, status, headers, config) {
callback(status, data);
Notiy('Failed');
});
并在控制器中:
$scope.save = function (entry) {
// for example show loading indicator here
MyService.save(entry, function (err, data) {
// hide it again here
});
};