我试图在提交该元素之前删除一个属性元素。
$scope.changeTitle = function(song, title){
song.title = title;
delete song.label;
song.put();
}
当这样做时,似乎该物业"标签"已移除。当我执行PUT操作时,对象实际上具有属性标签。
// This is the object I'm sending (checked from the chrome dev tool - network)
{
artist: "XXXXX"
title: 'XX'
label: []
}
有没有办法从元素中删除属性?
答案 0 :(得分:3)
如果在Developer Console中检查对象的put
方法,您会发现引用的对象实际上是您的原始对象(即使在更改后)。为了修复引用,请在操作对象之前使用Restangular.copy()
。
早些时候你写过以下内容:
$scope.song = restangular.one(song, 1).get().$object;
你应该写:
$scope.song = restangular.copy(restangular.one(song, 1).get().$object);
要查看相关问题,请结帐:https://github.com/mgonto/restangular/issues/55
答案 1 :(得分:0)
您可以使用underscore's _.omit
函数(http://underscorejs.org/#omit)
song = _.omit(song,'label');