javascript – 完全从Backbone.js模型中删除属性

我正在尝试从骨干模型中完全删除一个属性.该模型正在发送到一个不是非常灵活的API,如果我发送我应该发送的其他属性,它将会中断,所以我需要删除一个属性,使其不再存在.

我试过model.unset,从this question,但是当我打印出对象时,我想要删除属性仍然列出,只是一个值为null.

我需要的属性才能完全消失.

我的基本结构是:

model.unset("AttrName","silent");

解决方法

问题是您正在使用参数取消设置不正确. “静音”应该是 options hash的一部分,而不是单独的参数.这样做:
model.unset("AttrName",{ silent: true });

奇怪的行为的原因可以从annotated source

unset: function(attr,options) {
  (options || (options = {})).unset = true;
  return this.set(attr,null,options);
},

unset方法假定其options参数是一个对象,并尝试创建或修改它,然后将其传递给set方法.如果你传递一个字符串,那么代码的无意义的效果是将属性设置为null,而不是将其设置为null.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...