hören Sie zu einer Sammlung hinzufügen/ändern, als eine model-Attribut einer view
Habe ich eine Maßnahme Ansehen, und es hat eine zugeordnete Maßnahme-Modell, welches aus zwei Sammlungen, RepresentationsCollection und BeatsCollection. Die Maßnahme Ansicht geschachtelte untergeordnete Darstellung Ansichten, jede mit Ihrer eigenen Repräsentation, Modell und Darstellung aller Modelle teilen das gleiche Attribut einen Verweis auf die Maßnahme View BeatsCollection.
Ich weiß, dass, wenn Sie hören, ein change
Veranstaltung, die Sammlung wird nicht reagieren, wenn etwas Hinzugefügt wird. Sie sollen binden. Die docs sind nicht die besten. Also, wenn das Kind Darstellung wie folgt Aussehen:
representation.View = Backbone.View.extend({
initialize: function(options) {
//this.beatsCollection is a reference to the Parent Measure View attribute beatsCollection which is a collection
this.model.listenTo(this, 'change:beatsCollection', this.render);
this.model.on('change:beatsCollection', this.render, this);
this.bind.listenTo(this, 'change:beatsCollection', this.render);
},
und hier ist das Modell:
representation.Model = Backbone.Model.extend({
initialize: function(options) {
console.log(options);
this.idAttribute = options.idAttribute;
this.type = options.type;
this.beatsCollection = options.beatsCollection;
}
Wie höre ich bei dem Attribut, auf dieser Aussicht zugehörige Modell, das ein Attribut hat, das ist verbunden mit einer Sammlung auf ein anderes Modell?
Hier ist ein Plnkr: http://plnkr.co/edit/z4mWqo1v0nDe13TiB9r3?p=preview
Klicken Sie zuerst auf "add a representation".
Zweitens, klicken Sie auf "add a beat' und beachten Sie, dass die Anzahl der Schläge nicht aktualisieren.
Drittens, wenn Sie klicken Sie auf "hinzufügen einer Vertretung' wieder, es wird ein weiteres mit der richtigen Anzahl von Schlägen.
In der Representation.js Blick, wie bekommen wir die Darstellung Ansichten neu Rendern, wenn eines der Geschwister-Ansichten klicken Sie auf "hinzufügen ein beat'
Du musst angemeldet sein, um einen Kommentar abzugeben.
aktualisiert Plnkr: http://plnkr.co/edit/JtyxnhaGlPVijhbRPt5v?p=preview
trick war hier in Vertretung.Ansicht einbauen
mit
remove
undchange
oder sollte ich einebind
oderbindAll
. Wenn ja, wie?this.model
in der initialize-Funktion ist unnötig, weil-Backbone übernimmt das für Sie.