我正在开发一个带有 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/