Angular ajax成功消息

时间:2015-02-18 07:42:54

标签: javascript angularjs

谁应该显示成功消息并重定向用户。目前成功时,服务显示成功消息并重定向用户或应该通过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');
     });

2 个答案:

答案 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
  });
};