emberjs newbie - функция карты не определена для маршрутизатора

Я только начинаю с emberjs. Я создаю простую страницу index.html с двумя ссылками вверху: About и Posts. Это соответствует стандартному примеру на домашней странице emberjs. Я получаю ошибку в браузере

"Uncaught TypeError: Невозможно вызвать метод 'map' of undefined"

Так что это означает, что мой маршрутизатор не определен. Это почему?

Вот код 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 ответа

Решение

Убедитесь, что вы используете последнюю версию Ember (1.0.0-RC.2) с http://emberjs.com/.

Приведенный вами пример - маршрутизатор старого стиля, который больше не используется. Новый стиль объясняется в этом руководстве и определяется следующим образом:

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

Ресурс не является конечной точкой. Попробуйте следующее:

App.Router.map(function() {

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

});

Таким образом, я столкнулся с другим вопросом о stackru. 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: У объекта # нет метода 'resource'

Другие вопросы по тегам