【发布时间】:2015-03-23 07:16:07
【问题描述】:
我有一个项目资源,包含多个任务资源(类似于 Facebook 帖子和 cmets 的关系)
当我更新一个项目时,我想使用 url /project/[project id]。当我更新任务时,我想使用 url /project/[project id]/[task id]
这里是我的项目资源服务:
angular.module('project').factory('Project', ['$resource', function($resource) {
return $resource('project/:projectId', {
projectId: '@_id'
}, {
update: {
method: 'PUT'
}
})
}])
现在我要定义任务资源:
angular.module('task').factory('Task', ['$resource', function($resource) {
return $resource('project/:projectId/:taskId', {
projectId: '' //how can i pass in the project Id from controller?
taskId: '@_id'
}, {
update: {
method: 'PUT'
}
})
}])
在我的控制器中,如果我只是更新项目,而不是它的任务,那么我只需使用:
$scope.update = function() {
$scope.project.$update(function() {
$location.path('project/' + $scope.project._id)
}, function(errResponse) {
$scope.error = errorResponse.data.message
})
}
但是当我更新项目的任务时,我想传入项目来构造url。我怎样才能做到这一点?
请注意,项目和任务属于不同的模块。用户可以在项目详情页面或任务详情页面中更新任务。
【问题讨论】:
标签: angularjs node.js ngresource