Fri*_*c14 11 javascript backbone.js backbone-model
我试图从骨干模型中完全删除属性.该模型被发送到一个不太灵活的API,如果我发送我应该发送的属性,它将会中断,所以我需要删除一个属性,使其不再存在.
我试过model.unset,从这个问题,但当我打印出对象时,我正在尝试删除的属性仍然列出,只是值为null.
我需要完全消失该属性.
我的基本结构是:
model.unset("AttrName", "silent");
Run Code Online (Sandbox Code Playgroud)
McG*_*gle 19
问题是您使用的参数unset不正确."Silent"应该是选项哈希的一部分,而不是单独的参数.这有效:
model.unset("AttrName", { silent: true });
Run Code Online (Sandbox Code Playgroud)
从注释源可以看出奇怪行为的原因:
unset: function(attr, options) {
(options || (options = {})).unset = true;
return this.set(attr, null, options);
},
Run Code Online (Sandbox Code Playgroud)
该unset方法假定其options参数是一个对象,并尝试创建或修改它,然后将其传递给该set方法.如果您传递一个字符串,那么代码的无意影响是将该属性设置为null,而不是取消设置它.
| 归档时间: |
|
| 查看次数: |
11508 次 |
| 最近记录: |