2013-03-22 15 views
7

Sto cercando di capire gli hook setupController e model, verranno richiamati solo in caso di segmenti dinamici?In Ember.js il setupController e gli hook del modello funzionano solo per i segmenti dinamici?

Questa è la mia configurazione del router, vedo l'applicazione sta lavorando bene, ma non vedo questi ganci della sedia elettrica:

// Router, this need to connect view and controller 
App.Router.map(function(){ 
    this.resource("login", {path : "/"}); 
    this.resource("home" , {path : "home/:home_id"}); 
}); 

App.Router.IndexRoute = Ember.Route.extend({ 
    setupController:function(controller,model){ 
    console.log("in setupController hook for index route"); 
    } 
}); 

App.Router.LoginRoute = Ember.Route.extend({ 
    setupController:function(controller,model){ 
    console.log("in setupController hook for login route"); 
    } 
}); 

App.Router.HomeRoute = Ember.Route.extend({ 
    setupController:function(controller,model){ 
    console.log("in setupController hook for login route"); 
    } 
}); 

risposta

9

Supponendo che si sta utilizzando l'ultima brace (1.0.0-RC.1) È necessario definire i percorsi in questo modo:

App.HomeRoute = Ember.Route.extend({ 
    ... 
}); 

Fanno parte della vostra App, e non hanno la parte Router.

Working JSBin example

Come nota sul comportamento model e setupController gancio:

In un percorso, model saranno chiamati solo quando si percorre direttamente a un URL contenente un segmento dinamico. I parametri passati in model vengono utilizzati per recuperare il modello per quella rotta utilizzando il segmento dinamico.

Se il percorso è raggiungibile utilizzando un {{#linkTo route myObject}} o transitionTo(myObject) chiamata allora l'oggetto passato viene utilizzato per chiamare direttamente setupController e model non è chiamato.

Il gancio setupController sarà chiamata ogni volta che il percorso entra nel

Ember API docs for model

Ember API docs for setupController

Problemi correlati