ember-routemanager可以在加载时动态添加状态吗?

时间:2012-04-30 03:10:09

标签: url-routing ember.js

我有一个路由管理器,如下面的代码所示。

App.routeManager = Ember.RouteManager.create();

我不想静态地将viewstate添加到管理器;我想确定加载时的状态取决于数据。我怎样才能做到这一点?我正在寻找类似下面的代码。

foreach(item in itemArray){
      App.routeManager.states.add(Ember.ViewState.create(
             route: 'item.route'
      ));
}

有可能吗?

1 个答案:

答案 0 :(得分:1)

你基本上给了自己答案,见http://jsfiddle.net/pangratz666/xNnTP/

App.stateManager = Ember.StateManager.create({
    enableLogging: true,
    initialState: 'firstState',
    firstState: Ember.State.create({
        myEvent: function(manager) {
            manager.goToState('addedState');
        }
    })
});

Ember.run.later(function() {
    Ember.setPath(App.stateManager, 'states.addedState', Ember.State.create({
        enter: function() {
            this._super();
            console.log('hello dynamic world');
        }
    }));
    App.stateManager.send('myEvent');
}, 10);​