Ho avuto lo stesso problema. @DerickBailey ha ragione, ovviamente, che ignorare toJSON fa il lavoro. Ma trapelano anche nella comunicazione con il server (vedi il commento di Muu sulla sua risposta).
Quindi, alla fine, ho creato un plug-in Backbone per gestire specificamente l'esportazione dei dati nei template e farlo con un minimo di confusione: Backbone.Marionette.Export. Si occupa anche di strutture annidate, cura i riferimenti circolari, ecc. Vedi docs.
Ecco come funziona. Includere il file plug-in nel progetto e dichiarare
MyModel = Backbone.Model.extend({
foo: function() {
return "I am a calculated value";
},
exportable: "foo" // <-- this is the one line you have to add
});
Se sei un utente burattino, si è già fatto, a questo punto. foo
compare nei tuoi modelli come se fosse un attributo di modello.
Nelle normali viste Backbone, è sufficiente chiamare myModel.export()
o myCollection.export()
anziché le controparti toJSON quando si esegue il rendering.
Per i metodi che accettano argomenti, esiste un gestore onExport
. Gli esempi, ancora, sono nello docs.
penso che il problema ha a che fare con il modo in cui passo il modello per il modello. – Juanma