He tenido el mismo problema. @DerickBailey tiene razón, por supuesto, que reemplazar a JSON hace el trabajo. Pero también se filtra en la comunicación con el servidor (ver el comentario de muu sobre su respuesta).
Así que eventualmente, he construido un complemento Backbone para manejar específicamente la exportación de datos a plantillas, y lo hago con un mínimo de alboroto: Backbone.Marionette.Export. También se ocupa de estructuras anidadas, se ocupa de referencias circulares, etc. Consulte el docs.
Así es como funciona. Incluir el archivo plugin en su proyecto y declarar
MyModel = Backbone.Model.extend({
foo: function() {
return "I am a calculated value";
},
exportable: "foo" // <-- this is the one line you have to add
});
Si usted es un usuario de marionetas, ya está terminado en este punto. foo
aparece en sus plantillas como si fuera un atributo de modelo.
En vistas de Backbone planas, simplemente llame a myModel.export()
o myCollection.export()
en lugar de sus contrapartes de toJSON cuando realice la renderización.
Para los métodos que toman argumentos, hay un controlador onExport
. Los ejemplos, de nuevo, están en el docs.
creo que el problema tiene que ver con la forma en que paso por el modelo de la plantilla. – Juanma