【发布时间】:2016-02-03 14:07:23
【问题描述】:
如果我成功更新我的 API 中的某些内容,我正在尝试更改一些模型数据:
this.saveProject = function(project) {
var editedProjectSupport = {
/* some data */
};
SupportTimeTracks.update({id: project.backendId}, editedProjectSupport,
function() {
// There :
project.department = controllerScope.edit.project.department;
project.timetrack = controllerScope.edit.project.timetrack;
growl.success('Project support successfully edited');
},
function(result) {
growl.error('Project support couldn\'t be edited.');
console.log(result);
});
this.edit.project = {};
$scope.$broadcast('edit.project');
};
但我无法在我的成功回调function() 中访问project。无论如何要在参数或其他东西中传递它。
如何更新我的project.department 和project.timetrack?
从视图中调用函数,project 在函数中是本地的(尽管它引用了作用域中存在的元素)
【问题讨论】:
-
我认为
$resource返回一个特殊的promise对象;试试return SupportTimeTracks.update().$promise.then(function(result)) -
这将允许我访问插入的数据,但不能访问仅存在于前端的
project变量 -
你不会在
then函数中准确地做到这一点吗? -
Afaik,promise/then 的上下文不同,这意味着我们无法访问外部数据。这也是为什么我有一个引用
this的全局controllerScope。资源方法也是如此(保存、删除、更新...)
标签: javascript angularjs api crud angular-resource