Регулярные выражения (регулярные выражения) на японском языке

Помните, что [] в JS является просто псевдонимом new Array(), а поскольку объекты передаются по ссылке, каждый экземпляр вашей модели сеанса будет иметь один и тот же объект массива. Это приводит к возникновению всех проблем, включая массивы, которые кажутся пустыми.

Чтобы сделать эту работу так, как вам нужно, вам нужно инициализировать массив виджета в конструкторе. Это создаст уникальный массив виджета для каждого объекта сеанса и позволит устранить вашу проблему:

var Session = Backbone.Model.extend({
    defaults: {
        // ...
        widgets: false
    },
    initialize: function(){
        this.set('widgets',[]);
    },
    addWidget: function (widget) {
        var widgets = this.get("widgets");

        widgets.push(widget);
        this.trigger("change:widgets", this, widgets);
    },
    // ...
    // I have a method on the model to grabbing a member of the array
    getWidget: function (id) { 
        console.log(this.attributes);
        console.log(this.attributes.widgets);
    // ...
    }
});
15
задан djechlin 30 May 2012 в 02:41
поделиться