Ember-Router:如何在Ember 1.0-rc2中在运行时添加路由?

use*_*325 5 ember.js ember-router

在使用Ember 1.0-rc2发布的 Ember.Router版本中,是否可以在运行时添加路由?

wma*_*but 4

目前尚不支持执行此操作的方法。该App.Router.map调用由此代码的第 235-247 行处理:https://github.com/emberjs/ember.js/blob/master/packages/ember-routing/lib/system/router.js

Ember.Router.reopenClass({
    map: function(callback) {
        var router = this.router = new Router();

        var dsl = Ember.RouterDSL.map(function() {
          this.resource('application', { path: "/" }, function() {
             callback.call(this);
          }) 
        });

        router.map(dsl.generate());
        return router;
    }
Run Code Online (Sandbox Code Playgroud)

每次调用时,地图都会被覆盖Router.map,因为上一次调用的回调Router.map不会保留。

编辑 无论好坏,我收到了一个拉取请求来更改行为以允许多次调用App.Router.map. 我们会看看会发生什么。您可以在这里关注https://github.com/emberjs/ember.js/pull/2485

另一个编辑

我已经编写了一个要点来执行我的拉取请求在用户空间中执行的操作。这将允许您在运行时映射路线。只需添加此代码,然后将您的调用替换为App.Router.map我定义的方法

https://gist.github.com/grep-awesome/5406461

答案更改编辑

从此拉取请求开始,您现在可以map多次调用。https://github.com/emberjs/ember.js/pull/2892