Ответ 1
Первая проблема заключается в том, что вы должны вернуть обещание с помощью крючка модели. Таким образом, переход будет ждать обещания разрешить. return { /*...*/};
возвращает объект, а не обещание, даже если сам объект содержит promises.
Решение состоит в том, чтобы использовать Ember.RSVP.hash
как:
model() {
return Ember.RSVP.hash({
employeeList: this.store.findAll('employee'),
employee: Ember.Object.create()
});
}
Это вернет обещание , которое разрешает, когда разрешается выполнение всех внутренних promises.
Вторая проблема заключается в том, что вы не можете использовать this.get('model')
в маршруте. Если вы думаете об этом, то свойство model
- это сам крючок, а не разрешенная модель. Решения:
- Это действие отправляется с контроллера/шаблона. Не можете ли вы передать модель в качестве параметра? Таким образом, вы можете получить доступ к модели через аргументы функции.
- Если вам абсолютно необходимо,
this.modelFor(this.routeName);
возвращает модель для текущего маршрута. - Вы можете получить доступ к модели по маршруту через контроллер, например
this.controller.get('model')
. - Вы также можете реализовать setupController и получить доступ к этой модели. Затем вы можете сделать что-то вроде
this.set('employeeModel', model);
для более позднего доступа.