Ember.js:无法创建'router:main'的实例

Dev*_*ode 2 ember.js ember-cli

更新#2 - 这已经在最新的余烬中得到修复.

更新 - 这已得到修复,我很确定修复程序已进入Ember 1.11.0,所以你的export default Router.map( () -> ... )实际上是正确的,不会导致此错误.在那之前,你需要这样做:

Router.map(...)
export default Router
Run Code Online (Sandbox Code Playgroud)

这是因为Router.map不返回Router实例.

=====================

我在我的Ember-cli项目中收到此错误: 未捕获错误:无法创建'router:main'的实例.很可能是未正确定义的类或无效的模块导出

我的app/router.js文件是:

import Ember from 'ember';
import config from './config/environment';

export default Ember.Router.extend({
  location: config.locationType
}).map(function() {
  this.route('foo');
});
Run Code Online (Sandbox Code Playgroud)

怎么了?

Dev*_*ode 5

经过大量的摆弄,我发现Ember.Router.map没有返回Ember Router的实例.这也是无效的:

Router = Router.map(function(){ this.route('a'); });
export default Router;
Run Code Online (Sandbox Code Playgroud)

解决方案是简单地避免使用返回值.map并导出适当的Ember路由器实例:

Router.map(function(){ this.route('a'); });
export default Router;
Run Code Online (Sandbox Code Playgroud)

希望这在2.0中得到修复:https://github.com/emberjs/ember.js/issues/9966