2012-05-15 13 views
37

¿Hay alguna manera de eliminar un atributo de un modelo Backbone?Eliminar un atributo de un modelo Backbone.js

La razón es que pase de seguridad de datos adicionales en salvar a realizar ciertas acciones, pero luego de que los datos se agrega automáticamente a mi modelo

La documentación dice que no edita los model.attributes directamente, por lo que el único otro método veo a hacer esto sería usar el método set y establecer el atributo nulo, pero eso no es lo ideal

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") 
} 

también he intentado sacarlo de la propiedad atributos, pero que en realidad no se quita eso.

Respuesta

84

¿Está buscando model.unset?

Eliminar un atributo eliminándolo del hash de atributos internos. Dispara un evento de "cambio" a menos que se pase silencioso como una opción.

Puede encontrar la documentación here.

+5

maldición me siento como un idiota – MattoTodd

+5

para ser justos conmigo mismo, creo que los documentos de la estructura deberían tener los métodos enumerados en orden alfabético – MattoTodd

+0

sucede a los mejores, siéntase libre de sugerir el orden de los métodos en el github repo https: // github .com/documentcloud/backbone –

Cuestiones relacionadas