Angular $资源:如何在“新”保存操作后转移到“编辑”视图?

时间:2014-08-25 02:37:31

标签: javascript angularjs

我正在开发一个带有CRUD操作的Angular应用程序来读取/写入API。如何在保存操作后转移到编辑视图?以下结果是/users/undefined/edit的网址,而不是注入 userId

控制器

.controller('UserNewCtrl', [
  '$scope'
  '$location'
  'Users'

  ($scope, $location, Users) ->
    $scope.saveUser = (userId) ->
      Users.save($scope.user) 
      # how can I get to /edit view after save action?
      $location.path('users' + userId + '/edit') 
      return
])

.factory('Users', [
  '$resource'

  ($resource) ->
    $resource('http://myapi/users', {})
])

.factory('User', [
  '$resource'

  ($resource) ->
    $resource(http://myapi/users/:id', {},
      update:
        method: 'PUT'
        params:
          id: '@id'
    )
])

1 个答案:

答案 0 :(得分:2)

$ resource的保存操作接收2个参数,成功回调和错误回调。 成功回调接收响应对象作为第一个参数,即用户保存。该对象应该获得Id。

我最好将$ scope.user定义为这样的User实例:

$scope.user = new User();

然后,保存用户对象。

$scope.user.save(function (u) {
    // redirect url using u.id or $scope.user.id;
});

所以......你必须等待回调。

有关$ resource的更多信息,请阅读doc