Restangular - 从元素中删除属性

时间:2014-06-19 10:19:39

标签: angularjs restangular

我试图在提交该元素之前删除一个属性元素。

$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: []
}

有没有办法从元素中删除属性?

2 个答案:

答案 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');