我刚开始使用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(){
});
我仍然得到错误。我很困惑:(。
答案 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() {
});
});