0

我只是从 emberjs 开始。我正在创建一个简单的 index.html 页面,顶部有两个链接:关于和帖子。这是遵循 emberjs 主页上的标准示例。我在浏览器中收到错误

“未捕获的类型错误:无法调用未定义的方法‘映射’”

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

这是 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(){

});

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

4

3 回答 3

1

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

您发布的示例是不再使用的旧式路由器。新样式在本指南中进行了解释,定义如下:

App.Router.map(function() {
  this.route("about", { path: "/about" });
  this.route("favorites", { path: "/favs" });
});
于 2013-04-02T13:13:32.903 回答
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');
});

我得到错误

Uncaught TypeError: Object # has no method 'resource'

于 2013-04-02T01:09:41.747 回答
0

资源不是终点。尝试以下操作:

App.Router.map(function() {

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

});
于 2013-04-02T12:42:10.080 回答