Utilizzando Backbone.js so che si consiglia vivamente di impostare la proprietà di un modello utilizzando il metodo set e NON modificando direttamente lo attributes internal hash.backbone.js set modello hash attributi interni direttamente
Tuttavia, oltre a non attivare automaticamente l'evento "modifica", quali altri "effetti collaterali" ci sono nel modificare direttamente l'hash interno?
Il problema che sto affrontando è che mentre il metodo set prende un oggetto letterale, devo assegnare il lato sinistro usando una variabile determinata in fase di esecuzione. Grazie.
myModel.set({
myProperty : myValue; //myProperty is a variable, so this is invalid syntax
})
//vs
myModel.attributes[myProperty] = myValue; //myProperty is a variable that can be evaluated
Penso che la soluzione sia brillante. Questa funzione dovrebbe essere unita a nuove versioni Backbone! Grazie anche per aver segnalato il codice sorgente annotato; hai ragione, avrei dovuto guardarlo in primo luogo. – fortuneRice
bello! Ho scritto questo codice una dozzina di volte e non ho mai pensato di renderlo un metodo. :) btw: non c'è bisogno di usare _.extend per questo. 'Backbone.Model.prototype.setByName = function (...) {...}' fa la stessa cosa ... funzionalmente lo stesso. solo un modo diverso di farlo. –
@Dickick Bailey: Divertente ... Ho pensato che "_extend" avesse delle capacità extra per estendere i prototipi ... no. È davvero per estendere qualsiasi oggetto con una serie di modifiche. Niente di pazzesco lì. Cambiando la mia risposta per riconoscerlo. Grazie. –