2016-04-15 19 views
0

Ich muss 3 Ansichten laden, wenn eine Seite geladen ist.Welches ist das richtige Muster zum Laden mehrerer Ansichten?

Zur Zeit mache ich es wie folgt aus:

/** 
* BVComposite 
*/ 

    var BVComposite = Backbone.View.extend({ 
     Name: 'BVComposite', 
     render: function (token) { 
      this.BVFave = new BVFave({ el: $A.el('#mm'), 
       collection: new BCFave([], {data: {h_token: token, model: "FavoriteReader"}}) 
      }); 
      this.BVFeed = new BVFeed({el: $A.el('#at_view'), 
       collection: new BCFeed([], {data: {h_token: token, model: "FeedReader"}}) 
      }); 
      this.BVAccount = new BVAccount({ model: new BMAccount([], 
       {data: {h_token: token, model: "AccountReader"}}) 
      }); 
     } 
    }); 

Dann habe ich es so nennen (auf Seite Last)

var composite_view = $A.Class.add(new BVComposite()); 
composite_view.render(token); 

Gibt es einen besseren Weg, dies zu tun. Das heißt, gibt es ein Entwurfsmuster, um dies zu tun?

Antwort

0

Ich würde diesen Code in eine initialize-Funktion einfügen und dann die zusammengesetzte Ansicht die Kinder render aufrufen lassen.

Versuchen Sie, nur Code im Zusammenhang mit DOM-Manipulation in Ihre Renderfunktion zu setzen. In Ihrer Initialisierungsfunktion würde ich jede Logik setzen, die zum Einrichten der Ansicht benötigt wird, wie das Zuweisen einer model oder collection, die einen options Parameter behandelt, etc. Dies hält Ihre Absicht klar und einfacher zu verstehen.

+0

Nach dem Aussehen seiner Codes sind diese Ansichten selbst Rendering. Es ist nicht notwendig, sie separat zu initialisieren und zu rendern, daher ist es in Ordnung, sie in render zu haben. –

Verwandte Themen