Hören Sie sich eine bestimmte Attributänderung in einem Modell in einer verschachtelten Sammlung in Backbone an

Habe ich den folgenden backbone-Struktur:

- collection[order_items]
   - collection[menu_items]
        - price
        - quantity

und ich will hören für alle änderungen in der Menge-Attribut, ich habe es funktioniert durch

var CheckoutView = Backbone.Marionette.ItemView.extend({

    template: '#template-checkout',

    initialize: function (options) {
        this.order_collection = options.collection;
        _(this.order_collection.models).each(function (element, index, list) {
            this.listenTo(element.get("menu_items"), "change:quantity", this.onOrderItemsChanged);
        }, this);

    },

    onOrderItemsChanged: function (model, val, options) {
        console.log(model.get("name"));
    }

});

Aber nicht marionette oder Rückgrat haben, einen besseren Weg, es zu tun, anstatt einer Schleife durch die übergeordnete Sammlung und das hinzufügen der listener auf jedes Kind Sammlung, vielleicht so etwas wie

this.listenTo(this.order_collection, "change:menu_items:quantity", this.on OrderItemsChanged)

(die nicht für mich arbeiten)

InformationsquelleAutor der Frage Yehia A.Salam | 2013-04-27

Schreibe einen Kommentar