#ember.js #ember-data
#ember.js #ember-data
Вопрос:
Каков наилучший способ подключиться к hasMany
обещанию загрузки отношений в ember data? Это не основная модель, поэтому маршрут загрузки не имеет значения. У меня уже есть загруженная основная модель, Project
и мой шаблон отображает связанную с ней RequestMatchers
. Это RequestMatchers
я хотел бы установить свойство для ProjectController
или что-то еще для отображения визуальной очереди загрузки. Это то, что у меня есть в настоящее время.
/models/project.js
import DS from 'ember-data';
export default DS.Model.extend({
title: DS.attr('string'),
private: DS.attr('boolean'),
requestMatchers: DS.hasMany('request-matcher', {async: true}),
responses: DS.hasMany('response', {async: true})
});
/templates/project.hbs
{{#each matcher in requestMatchers}}
//render requestMatchers
{{/each}}
Я хотел бы сделать что-то подобное, но я не знаю, как подключиться к этому асинхронному запросу для RequestMatchers
обещания.
{{#if requestMatchersLoading}}
Loading request matchers...
{{/if}}
{{#each matcher in requestMatchers}}
//render requestMatchers
{{/each}}
Ответ №1:
Не зависит от isFulfilled
, поскольку это становится правдой только в том случае, если загрузка завершается успешно. Используйте isPending
вместо этого.
Вы также можете проверить isRejected
и добавить кнопку перезагрузки, если это необходимо.
{{#if isFulfilled}}
Done loading.
{{else}}
{{#if isPending}}
Loading...
{{else}}
Restart!
{{/if}}
{{/if}}
Ответ №2:
Использовать isFulfilled
флаг
{{#if requestMatchers.isFulfilled}}
{{#each matcher in requestMatchers}}
//render requestMatchers
{{/each}}
{{else}}
Loading request matchers...
{{/if}}