emberjs - 打印以控制对象中的所有路径

时间:2012-08-01 19:30:58

标签: ember.js console ember-old-router

我希望在某个对象中看到所有可能的路径。我怎么能这样做?

示例我有:

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');
        }
    }),
...
})

我希望在console.log()中打印到控制台(类似App.Router)所有可能的路径。我怎样才能做到这一点?如何检查emberjs中对象中的“树”?

1 个答案:

答案 0 :(得分: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);        
});