重构angular ng资源错误处理

refactor angular ng-resource error handling

本文关键字:错误 处理 资源 ng angular 重构      更新时间:2023-09-26

警告:前方有咖啡脚本。

我有多个控制器,具有各种ngresource功能,如:

app.controller 'usersCtrl', ($scope, $state, $filter, $flash, $api) ->
$scope.saveUser = ->
    $scope.spinner = true
    $api.User.save($scope.user).$promise.then ((response) ->
       ....
    ), (error)
       $scope.spinner = false
       if error.code = 400
          $flash.create('warning', error.message)
       else if error.code = 500
          $flash.create('danger', error.message)
$scope.updateFoo = ->
    $scope.spinner = true
    $api.Foo.update(foo: $scope.foo).$promise.then ((response) ->
       ....
    ), (error) ->
       $scope.spinner = false
       if error.code = 400
          $flash.create('warning', error.message)
       else if error.code = 500
          $flash.create('danger', error.message)

考虑到我在几十个函数中使用了几乎相同的错误处理代码,我该如何重构代码,以便在多个函数中重用。

将错误处理程序重构为函数怎么样?

errorHandler = (error) ->
  $scope.spinner = false
  if error.code = 400
    $flash.create('warning', error.message)
  else if error.code = 500
    $flash.create('danger', error.message)

然后这样使用:

$scope.saveUser = ->
    $scope.spinner = true
    $api.User.save($scope.user).$promise.then ((response) ->
       ....
    ), errorHandler