未捕获的TypeError:无法调用未定义的方法'map'

时间:2013-01-16 07:58:59

标签: ember.js sprockets ember-rails

我正在使用ember-rails master并创建了一个ember bootstrap项目。一切都是空的,就像创建时一样,但我遇到了上面提到的类型错误。何时输入路由器。命名空间是已知的,但路由器不是。有没有人见过这个?

为了完整起见,我将通过以下内容:

Basis.ApplicationController = Ember.Controller.extend({

});

Basis.ApplicationRoute = Ember.Route.extend({

});

Basis.js:

//= require ./store
//= require_tree ./models
//= require_tree ./controllers
//= require_tree ./views
//= require_tree ./helpers
//= require_tree ./templates
//= require ./router
//= require_tree ./routes
//= require_self

Basis.Router.map(function(match) {

});

Basis.Store = DS.Store.extend({
  revision: 11
});

application.handlebars:     

的应用

<p>Your content here.</p>

{{outlet}}

的application.js

//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require handlebars
//= require ember
//= require ember-data
//= require_self
//= require basis
Basis = Ember.Application.create();
//= require_tree .

2 个答案:

答案 0 :(得分:1)

或者你可以在github上捆绑来自master的ember-rails:

gem 'ember-rails', github: 'emberjs/ember-rails'

然后bundle install。确保您没有任何本地出售的handlbars,ember.js或ember-data挂出的版本。

现在ember-rails master在ember.js 1.0.0-pre4。

如果你想在master上跟踪ember.js和ember-data,你也可以对供应商(以与ember-rails不冲突的方式)执行此操作:

bundle exec rails g ember:install --head

这会将它们安装在vendor / assets / ember。

答案 1 :(得分:0)

如果您使用的是来自Ember-Rails的最新版本,那么问题是ember的供应商文件已过期。 Ember-Rails中的Ember.js位于v1.0.pre-279-gb1c0b4c,Ember-Data位于4。要在代码中使用当前文档,您需要更新Ember.js和Ember-Data的版本。

您可以在此处找到更新的EmberJS文件:EmberJS v1.0.0-pre.2-396-gddb0951 和Ember-Data:Ember-Data v11。只需将它们重命名即可与您现有的相匹配。

您可以在此处使用更新的Ember文件查看代码:http://jsfiddle.net/seankeating/ZRN23/7/