/ / Backbone - Vykreslenie zobrazenia po viacerých udalostiach - javascript, backbone.js

Chrbtica - Zobrazenie po viacerých udalostiach - javascript, backbone.js

Mám chrbtovú kosť View ktoré chcem vykresliť až potom, ako sa stanú dve rôzne udalosti. Tieto dve udalosti sú dve rôzne Collections osídlené zo servera (toto má vyplniť dva rozbaľovacie zoznamy).

Moji dvaja CollectionscFilterFields a cFilterOperators a obaja majú zvyk .populate() metóda .fetch() a požiare populated diania.

To je to, čo mám:

var MyView = Backbone.View.extend({
tagName: "div",
initialize: function(){
_.bindAll(this,"render");

this.fields = new cFilterFields();
this.operators = new cFilterOperators();

this.fields.populate();
this.operators.populate();

this.listenTo(this.fields,"populated",function(){
// ...
});
this.listenTo(this.operators,"populated",function(){
// ...
});

},
events: {},
render: function(){
// ...
return this;
}
});

Aký je najlepší spôsob, ako to vykresliť View kedy oba Collection udalosti sa spustili ...?

odpovede:

2 pre odpoveď č. 1

Mať zbierky “ populate metódy vrátia sľuby a potom ich použijú jQuery.when

Vaša inicializácia by potom mala vyzerať asi takto

$.when(fields.populate(), operators.populate())
.done(_.bind(function() {
this.render();
}, this));

Toto riešenie predpokladá JQuery a podčiarkovník, pretože obe sú závislosťami na chrbtici.


0 pre odpoveď č. 2

Práve ste to urobili, skutočne jednoduché, stačí urobiť:

this.listenTo(this.fields && this.operators,"populated",function(){
this.render();
});

UPDATE

Nepoužívajte to, pozrite si komentáre nižšie, akceptujem správnu odpoveď.