角度$resource:保存操作后如何'new'转移到'edit'视图?



我正在开发一个Angular应用,它使用CRUD操作来读写API。如何在保存操作后转移到编辑视图?下面的结果是url为/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'
    )
])

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

我认为最好定义$作用域。user作为user实例,如下:

$scope.user = new User();

然后保存user对象。

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

所以…你必须等待回叫。

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

最新更新