Questo è un po 'di esempio forzato, ma credo che dia il merito.Backbone.js - Come creare una collezione che ha proprietà associabili
Diciamo che ho una collezione di macchine backbone. E per la raccolta voglio una proprietà chiamata isValid. Voglio che altri oggetti siano in grado di collegarsi a isValid e attivare una funzione quando èValid cambia. La raccolta è valida La proprietà verrà modificata in base ai modelli di una raccolta nel suo complesso.
Ad esempio, se tutte le porte sono bloccate su ogni automobile, allora isValid dovrebbe passare a true. Quando sono le modifiche Valori validi, tutte le funzioni associate a Evento Evento valido devono essere attivate.
La mia domanda è, come posso creare una collezione che ha proprietà associabili che funzionano in modo simile alle proprietà del modello?
Questo è il codice che mi piacerebbe avere a lavorare.
var Car = Backbone.Model.extend({});
var Cars = Backbone.Collection.extend({
model: Car,
url: "Cars",
isValid: false, //Here's the property that I want bindable
//but do not know how to accomplish this.
});
var cars = new Cars();
//Call a function when cars.isValid changes
cars.bind("change:isValid", carsIsValidChanged, cars)
//Not sure if this what the function would look like
//but would need access to cars.isValid or just the car collection
function carsIsValidChanged(isValid){
console.log(isValid);
}
Aggiornamento
Vedi il mio soluzione completa come una risposta di seguito.
Grazie per la risposta. Credo che tu mi abbia indicato nella direzione giusta. Apprezzare le informazioni che è valido Devono essere creati in fase di inizializzazione. Quando avrò finito con la mia soluzione di lavoro, la posterò. –