从Backbone.js模型中移除一个属性

40

有没有办法从Backbone模型中删除属性?

原因是我在保存时传递额外的数据以执行某些操作,但然后这些数据会自动添加到我的模型中。

文档说不要直接编辑model.attributes,所以我唯一看到的其他方法就是使用set方法并将属性设置为null,但这并不理想。

var myModel = new Model()
myModel.save({name:'Holla', specialAttr:'Please Remove me'})
myModel.set({tempAttr:null})

if(myModel.attributes['specialAttr'] == null){
    alert("Model does not have a specialAttr")
}

我也尝试从attributes属性中删除它,但实际上并没有将其删除。

1个回答

91

你是否正在寻找model.unset

通过从内部属性哈希表中删除属性来移除它。如果传递了静默选项,则不会触发“change”事件。

您可以在这里找到该文档。


6
为了公正起见,我认为骨干文档中的方法应该按字母顺序列出。 - MattoTodd
最好的也会遇到这种情况,欢迎在 GitHub 仓库 https://github.com/documentcloud/backbone 上提出方法顺序建议。 - Vincent Briglia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接