emberjs newbie - 没有为路由器定义的map函数

时间:2013-04-02 00:56:54

标签: ember.js ember-old-router

我刚开始使用emberjs。我正在创建一个简单的index.html页面,顶部有两个链接:About和Posts。这是关于emberjs主页的标准示例。我在浏览器中收到错误

  

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

所以这意味着我的路由器未定义。那是为什么?

这是app.js代码:

var App = Ember.Application.create();

App.router.map(function(){

});

所以我试着定义它......

var App = Ember.Application.create();

App.Router = Ember.Router.extend({
  enableLogging: true,
  location: 'hash'
});

App.Router.map(function(){

});

我仍然得到错误。我很困惑:(。

3 个答案:

答案 0 :(得分:1)

确保您使用http://emberjs.com/的最新版Ember(1.0.0-RC.2)。

您发布的示例是旧式路由器,不再使用。新样式在this guide中解释,定义如下:

App.Router.map(function() {
  this.route("about", { path: "/about" });
  this.route("favorites", { path: "/favs" });
});

答案 1 :(得分:0)

所以我在stackoverflow上遇到了另一个问题。 http://goo.gl/JVEs9。我从链接获得了一个版本的ember(1.0.0-pre.2)并重新编写了如下代码:

var App = Ember.Application.create();

App.Router.map(function(match){
    match('/').to('index');
    match('about').to('about');  
});

这似乎有效。我仍然无法得到:

var App = Ember.Application.create();

App.Router.map(function(){
    this.resource('about');
});

我收到错误

  

未捕获的TypeError:对象#没有方法'资源'

答案 2 :(得分:0)

资源不是终点。请尝试以下方法:

App.Router.map(function() {

  this.resource('about', function() {
  });

});