2013-10-16 14 views

risposta

28

Passo this come opzione alla vista del bambino sulla fase di inizializzazione:

var ChildView = Backbone.View.extend({ 
    initialize : function (options) { 
    this.parent = options.parent; 
    } 
}); 

// somewhere in the parent view ... 
new ChildView({parent:this}); 
+0

Come si fa con un CompositeView e ItemView? – hakunin

+0

@hakunin in Marionette puoi farlo allo stesso modo. Basta usare la vista corretta ad es. 'Marionette.ItemView' invece di' Backbone.View' –

+0

Non allo stesso modo - non si costruisce la visualizzazione figlio da soli in caso di CollectionView, quindi è necessario utilizzare childViewOptions o qualcosa del genere. Ad ogni modo, ho scoperto che anche passare tramite triggerMethod non richiedeva alcuno sforzo in più, quindi lo uso. – hakunin

-2
// You can use this code instead 

var ChildView = Backbone.View.extend({ 
    initialize : function (options) { 
    this._configure(options); // Set all the options as local variables 
    // This is used in the Backbone.View code on the latest version 

    } 
}); 
+0

Non vedi '_configure 'in nessun punto nell'origine Backbone. Vedo '_.extend (this, _.pick (options, viewOptions));' comunque. In questo caso, sarebbe usato come segue: '_.extend (this, _.pick (options, ['parent']));' –