Frage

Ich genieße Backbone.js mehr und mehr. Ich wünsche, mehrere Ansichten für ein bestimmtes Modell haben:

  • Eine Liste-Ansicht, in der jedes Modell eine Ansicht hat mit einem eigenen li Elemente.
  • Eine Detailansicht alle Details eines Modells zeigt.

Meine Frage ist, ich war ein guter Weg, suche einen Blick zu ermöglichen, mit anderen und wählten folgende zu kommunizieren:

/** Allow a model to keep track of it's views. **/
Backbone.Model.prototype.addView = function (view) {
    // Ensure our model has a view array.
    if (typeof this.views === 'undefined')
    {
        this.views = [];
    }

    // Append our newest view to the array only if it is not already present.
    if (_.indexOf(this.views, view) === -1)
    {
        this.views.push(view);
    }
}

/** Allow a model to remove all of it's views.
 * 
 * @param {Object} args Any arguments will be provided to the view's method.
 */
Backbone.Model.prototype.unloadViews = function (args) {
    var n = (typeof this.views === 'undefined') ? 0 : this.views.length;
    for (var i = 0; i < n; i++)
    {
        var view = this.views[i];
        if (typeof view.unloadView === 'function')
        {
           view.unloadView(args);
        }
    }
}

/** Allow a model to re-render all of it's views.
 * 
 * @param {Object} args Any argyments will be provided to the view's method.
 */
Backbone.Model.prototype.renderViews = function (args) {
   var n = (typeof this.views === 'undefined') ? 0 : this.views.length;
   for (var i = 0; i < n; i++)
   {
        var view = this.views[i];
        if (typeof view.render === 'function')
        {
            view.render(args);
        }
   }
}

Meine Fragen

  1. Bin ich etwas fehlt, wie ich Backbone.js lernen, die mir erlauben, dies nativ zu tun?
  2. Sie haben einen Grund, warum ich dies vermeiden sollte?

Zusätzliche Informationen

Ich habe die Anwendung (ziemlich rudimentär) auf GitHub geteilt: https://github.com/ aarongreenlee / Learning-Backbone.js . Wenn Sie es vorziehen, den Code in dieser Umgebung zu sehen, können Sie es hier zugreifen:

Andere Tipps

Eine Antwort kam von Twitter von Jeremy Ashkenas von Document Wolke

@aarongreenlee Kein Grund, es zu vermeiden - wenn Sie wollen Ihre Ansichten halten einen baumartigen Bezug zueinander stehen, das ist sicherlich legitim. - @ jashkenas

scroll top