Ember.js 未捕获的TypeError:无法调用未定义的方法“map”

Ember.js 未捕获的TypeError:无法调用未定义的方法“map”,ember.js,sprockets,ember-rails,Ember.js,Sprockets,Ember Rails,我正在使用ember rails master并创建了一个ember引导项目。所有内容都是空的,创建时保持原样,但我遇到了前面提到的类型错误。当进入路由器时。名称空间已知,但路由器未知。以前有人见过这个吗 为了完整起见,我将跳过以下内容: Basis.ApplicationController = Ember.Controller.extend({ }); Basis.ApplicationRoute = Ember.Route.extend({ }); Basis.js: //= re

我正在使用ember rails master并创建了一个ember引导项目。所有内容都是空的,创建时保持原样,但我遇到了前面提到的类型错误。当进入路由器时。名称空间已知,但路由器未知。以前有人见过这个吗

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

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
});
应用程序.把手: 应用


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

您可以在此处找到更新的EmberJS文件: 和余烬数据:。只需重命名它们以匹配您现在拥有的内容


您可以在此处查看更新后的Ember文件的代码:

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

您可以在此处找到更新的EmberJS文件: 和余烬数据:。只需重命名它们以匹配您现在拥有的内容


您可以在此处查看带有更新后的Ember文件的代码:

或者,您可以从github上的master捆绑Ember rails:

gem 'ember-rails', github: 'emberjs/ember-rails'
然后捆绑安装。确保没有任何本地出售的Handlbar、ember.js或ember数据版本

现在ember rails master位于ember.js 1.0.0-pre4

如果您想在master上跟踪ember.js和ember数据,您也可以对供应商这样做,但不要与ember rails发生冲突:

bundle exec rails g ember:install --head

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

或者,您可以从github上的master捆绑ember rails:

gem 'ember-rails', github: 'emberjs/ember-rails'
然后捆绑安装。确保没有任何本地出售的Handlbar、ember.js或ember数据版本

现在ember rails master位于ember.js 1.0.0-pre4

如果您想在master上跟踪ember.js和ember数据,您也可以对供应商这样做,但不要与ember rails发生冲突:

bundle exec rails g ember:install --head

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

谢谢,现在我可以今晚继续。我希望师父总是有一个可交付的工作成果。我想我不该这么想,还在挣扎。如果我在“应用程序”中添加“匹配”/“;”在Basis.Router主体中,我得到了下一个错误,match未定义。match不再是优化路由的有效语法。您将需要如下内容:App.Router.mapfunction{this.route'application',{path:'/'};};您可以在以下位置看到我的示例:新文档:哇,事情不仅发生了变化,而且变化非常快。再次感谢你的帮助。谢谢,现在我今晚可以继续了。我希望师父总是有一个可交付的工作成果。我想我不该这么想,还在挣扎。如果我在“应用程序”中添加“匹配”/“;”在Basis.Router主体中,我得到了下一个错误,match未定义。match不再是优化路由的有效语法。您将需要如下内容:App.Router.mapfunction{this.route'application',{path:'/'};};您可以在以下位置看到我的示例:新文档:哇,事情不仅发生了变化,而且变化非常快。再次感谢您的帮助。谢谢,下次我会尝试安装。对于在哪个gem中可以使用什么,有时有点模糊。下载.js libs并将其放在/vendor/assets/javascript中的好处是,我完全知道我拥有什么。谢谢,下次我会给ember:install一个机会。对于在哪个gem中可以使用什么,有时有点模糊。下载.js libs并将其放在/vendor/assets/javascript中的好处是我完全知道自己拥有什么