2015-12-10 2 views
0

У меня в router.js:Ember 2.0 маршрутизатор не загружает данные модели?

Router.map(function() { 
    this.route('portfolio', function() { 
    this.route('company', { path:'/company/:id' }); 
    }); 
} 

И в моих маршрутов/портфель/company.js:

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    model: function(params) { 
    var companyId = params.id; 
    return new Ember.RSVP.hash({ 
      company: Ember.$.ajax({ url: '/api/company/'+companyId, dataType: "json", type: 'GET' }) 
     }).then(function(message) { 
      return message; 
     }, function(error) { 
      console.log(error); 
     }); 
    } 
}); 

Мой маршрут и шаблон загружается нормально, когда я перейти к app/portfolio/company/1, но по какой-то причине, когда я перехожу к этому маршруту, Ember не загружает модель (нет ошибки, но переменная {{model}} не заполняется в шаблоне). Только когда я обновляю страницу, Эмбер загружает модель ?! Я немного запутался сейчас ...

Edit: добавлен отсутствующий параметров и добавил более подробное описание

+0

«Когда я перехожу к этому маршруту, Ember не загрузит модель» - что это значит ? Есть некоторая ошибка в консоли, пустая страница или что? –

+0

Я добавил лучшее описание, но в основном функция модели не вызывается, а переменная {{model}} в шаблоне не заполняется –

+2

Функция модели не будет вызвана, если вы передаете модель своему помощнику 'link-to', передайте 'model.id' вместо этого. –

ответ

0

Я думаю, что в шаблоне или в контроллере используется модель, как так model.company заменить его model и удалить посторонний RSVP.hash потому Ember.$.ajax уже возвращает обещание, моделирующие крючки могут обрабатывать так в ES6 (уголек-кли поддерживает) Ваша модель крючок должен выглядеть следующим образом

model({ id }) { 
    return Ember.$.ajax('/api/company/' + id); 
} 

с выше тонким gs все должно работать, что происходило, я думаю, что вы проходили только model до {{link-to}}, пока ваш контроллер или шаблон ожидал model.company, так что ломались вещи

+0

Проблема заключалась в том, что я передавал всю модель в помощнике {{link-to}}. Когда я передал model.id, он начал работать нормально. Спасибо, хотя для ответа Бек. –

+0

@MaksimLuzik вы можете передать 'model' в' link-to', а также можно – Bek

Смежные вопросы