Rückgrat benutzerdefinierte Ereignis auslösen, nicht erkannt wird?

Ich bin lernen Backbone.js für das erste mal und ich bin mit einem Problem zu versuchen, um ein benutzerdefiniertes Ereignis auslösen (oder aus der Sicht von Anerkennung, wenn es ausgelöst wurde)?

Können Sie sehen, meine Sammlung hier den code: https://github.com/Integralist/Backbone-Playground/blob/master/Assets/Scripts/App/main.js#L72-86 welche, wenn Sie initialisiert wird eine benutzerdefinierte collection:init Veranstaltung.

var Contacts = Backbone.Collection.extend({
    model: Contact,

    initialize: function(){
        this.trigger('collection:init');
        this.bind('add', this.model_added, this);
    },

    model_added: function(){
        console.log('A new model has been created so trigger an event for the View to update the <select> menu');
    }
});

Aber später in meinem View, wo ich hören werde die für das Ereignis komme ich nicht an die Funktion populate Feuer: https://github.com/Integralist/Backbone-Playground/blob/master/Assets/Scripts/App/main.js#L90-107

var ContactsView = Backbone.View.extend({
    initialize: function(){
        console.log(contacts.models, 'get initial model data and populate the select menu?');
    },

    events: {
        'collection:init': 'populate',
        'change select': 'displaySelected'
    },

    populate: function(){
        console.log('populate the <select> with initial Model data');
    },

    displaySelected: function (event) {
        console.log('get model data and display selected user', event);
    }
});

Irgendwelche Ideen was ich falsch mache?

  • Hallo hat die Ansicht erhalten, die Sammlung durch Konstruktor ? während der initialize-Methode in der Ansicht haben, die Sie abonniert das Ereignis wie dieses this.collection.on("init",this.populate)
InformationsquelleAutor Integralist | 2012-07-28
Schreibe einen Kommentar