javascript - Angular $资源: How can I transfer to 'edit' view after 'new' save action?

标签 javascript angularjs

我正在开发一个带有 CRUD 操作的 Angular 应用程序,用于从 API 读取/写入。在保存操作后如何转移到编辑 View ?下面的结果是 /users/undefined/edit 的 url,而不是注入(inject) userId

Controller

.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。

我认为最好将 $scope.user 定义为 User 实例,如下所示:

$scope.user = new User();

然后,保存用户对象。

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

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

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

关于javascript - Angular $资源: How can I transfer to 'edit' view after 'new' save action?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25478315/

相关文章:

javascript - Angular ng-repeat 过滤器在搜索后取消选中所有复选框

javascript - "Thinking in AngularJS",如果我有jQuery背景?

javascript - 如何使用 OnClick 更改图像?

javascript - VS Code 中来自具有导入的类型定义的 javascript 文件的智能感知

javascript - 如何将代码添加到 <script> </script> 中

javascript - 如何在一个指令中进行变量更改以反射(reflect)在另一个指令中

javascript - 如何在 JavaScript 中声明一个名为 let 的变量?

javascript - 如何在按钮单击时添加输入字段

javascript - 如何在 firebase 中分离数据子集?

angularjs - 了解指令定义的 transinclude 选项?