消除重复代码AngularJS

时间:2015-03-27 00:51:06

标签: angularjs angular-ui-router

在CRUD场景中,加载记录列表然后在添加新记录后重新加载它是很常见的。你最终会得到这样的东西:

angular.module('myApp')
.controller('UsersController', function($scope,UserService)   {
  UserService.all().then(function(users) {
  $scope.users = users;
};

$scope.addUser = function(userData) { 
  UserService.add(userData).then(function() {
    UserService.all().then(function(users) {
      $scope.users = users;
    };
  };
};

});

正如你所看到的,即使在addUser范围内我也有两次调用UserService.all(),我认为这是一个错误的方法。

我如何消除这种重复的代码..

我听说使用状态Resolve会消除这样的重复代码,你有什么看法?

1 个答案:

答案 0 :(得分:1)

这实际上并不是特定于角度的,你可以像使用任何类型的代码那样处理它。您可以将重复的代码包装在另一个方法中,然后调用它:

$scope.reloadUsers=function(){
  UserService.all().then(function(users) {
      $scope.users = users;
  };
};

然后拨打$scope.reloadUsers()而不是致电UserService.all()