2013-03-22 9 views
7

Próbuję zrozumieć haki setupController i model, czy będą one wywoływane tylko w przypadku segmentów dynamicznych?W Ember.js czy ustawienia setupController i przechwytywania modelu działają tylko w przypadku segmentów dynamicznych?

To jest moja konfiguracja routera, widzę, czy aplikacja działa poprawnie, ale nie widzę te haki uzyskiwanie wykonywany:

// 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"); 
    } 
}); 

Odpowiedz

9

Zakładając, że używasz najnowszej żaru (1.0.0-RC.1) należy określić swoje trasy tak:

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

są częścią App, a nie mają Router część.

Working JSBin example

Jako notatkę na zachowanie haka model i setupController:

W trasie, model zostanie wywołana tylko podczas nawigowania bezpośrednio do adresu URL zawierającego segment dynamiczny. Parametry przekazane do model są używane do pobrania modelu dla tej trasy przy użyciu segmentu dynamicznego.

Jeśli trasa zostanie osiągnięta za pomocą {{#linkTo route myObject}} lub transitionTo(myObject) wezwanie następnie przekazany obiekt jest używany zadzwonić setupController bezpośrednio i model nie nazywa.

Hak setupController będzie wywoływana za każdym razem trasa wchodzi do

Ember API docs for model

Ember API docs for setupController

Powiązane problemy