2012-08-01 57 views
0

我想要查看某個對象中的所有可能路徑。我怎樣才能做到這一點?emberjs - 打印控制對象中的所有路徑

比如我有:

App.Router = Em.Router.extend({ 
enableLogging: true, 
location: 'hash', 

root: Em.Route.extend({ 
    // EVENTS 
    gotoAbout: Ember.Route.transitionTo('about'), 
    gotoProjects: Ember.Route.transitionTo('projects'), 
    gotoTechnology: Ember.Route.transitionTo('technology'), 
    gotoContact: Ember.Route.transitionTo('contact'), 

    // STATES 
    about: Em.Route.extend({ 
     route: '/', 
     connectOutlets: function (router, context) { 
      router.get('applicationController').connectOutlet('about'); 
     } 
    }), 
... 
}) 

我想打印在App.Router控制檯(像console.log())所有可能的路徑。我怎樣才能做到這一點?我如何檢查emberjs中對象的「樹」?

回答

2

我會遍歷childStates,並做一個遞歸函數。

var walkState = function(state){ 
    console.log(state.get('path')); 
    state.get('childStates').forEach(function(childState){ 
    walkState(childState);   
    });      
}   

App.router.get('childStates').forEach(function(state){ 
    walkState(state);   
}); 
+0

謝謝。我有其他問題: 我最大的問題是我無法調試我的代碼。控制檯中的錯誤不給我關於錯誤的完整信息。我不知道我能從哪裏讀到哪些變數以及我做了什麼錯誤。你使用一些附加的程序/插件瀏覽器來獲得更多關於代碼的信息嗎? – kabra 2012-08-02 08:01:46

+0

沒有額外的插件,只有Chrome和調試器。我認爲這個視頻來自湯姆戴爾http://vimeo.com/37539737可能對你有用 – 2012-08-02 08:05:05

+0

哦...我不知道幾個想...非常感謝你! – kabra 2012-08-02 14:36:53