2016-04-01 3 views
2

Я попробовалEmber Загрузка шаблона никогда не отображая

/app/routes/loading.hbs 
/app/pods/loading/template.hbs 
/app/pods/loading.hbs 
/app/pods/application/loading/template.hbs 
/app/pods/application/loading.hbs 
/app/templates/loading.hbs 
/app/templates/application-loading.hbs 

Ни один из указанных работ.

Я добавил это в свой маршрут приложения, и он работает, но он только возвращает счетчик в шаблоне приложения, а не соответствующий выход текущего маршрута.

//app/pods/application/template.hbs 
    {{#if isLoading}} 
     <i class="fa fa-spinner fa-pulse fa-5x"></i> 
    {{/if}} 

    //app/pods/application/route.js 
    actions: { 
    loading(transition, originRoute) { 
     let controller = this.controllerFor('application'); 
     controller.set('isLoading', true); 
     transition.promise.finally(function() { 
     controller.set('isLoading', false); 
     }); 
    } 
    } 

Что я делаю неправильно? Почему шаблоны не отображаются? Я использую [email protected] с [email protected]

+0

Может быть, вы перезаписывать поведение по умолчанию Ember.Route «загрузка». Попробуйте this._super (... arguments) –

+0

Где вы хотите, чтобы я положил это? Он не работал даже до того, как я добавил действие загрузки. Я использовал его только в качестве обходного пути. – jax

+0

Mkae, тогда это не проблема. Подумал, что он сломался, когда вы добавили действие погрузки. –

ответ

0

Вы пробовали

/app/templates/loading.hbs 

без действия нагрузки?

Действие загрузки останавливает распространение события загрузки, если только вы не вернете значение true из действия.

+0

Да, второй со дна. – jax

+0

Я попробую еще раз. – jax

+0

Я не был уверен, что вы также пробовали, не указав действие загрузки, потому что ваш вопрос не сделал этого ясно – Jevado

1

Если посмотреть на документы более внимательно, то вы увидите

enter image description here

Это означает, что вам нужно добавить

/app/pods/application-loading/template.hbs 
1

я боролся с этой проблемой в течение двух дней. Я использую Ember 2.5.0 и структуру pod. Мой шаблон загрузки находится в приложении/templates/load.hbs. Дайвинг вглубь меня привел меня к ember-resolver и this issue. Если вы избавитесь от действия загрузки, он покажет шаблон загрузки - очень странно. Поток говорит, чтобы позвонить супер, если вам нужно поймать событие, но это не сработало для меня.

0

Вам не нужно перезаписывать действие погрузки в маршруте. Просто определите приложение/templates/load.hbs. Всякий раз, когда вы загружаете модель из любого маршрута, шаблон загрузки будет отображаться автоматически. , если вы хотите использовать атрибут для отображения состояния загрузки, которое вы выполняете, выполните загрузку-сервис, доступ к которому вы можете получить в каждом маршруте, контроллере или компоненте.

EDIT: Вы также должны прочитать руководство: https://guides.emberjs.com/v2.5.0/routing/loading-and-error-substates/

Если вы будете следовать этому руководству, вы Шоуда увидеть, как погрузо-шаблон работает на.

3

Борясь с этим также, ответ Патрика помог много, но вызов супер в соответствии с этой нитью тоже не помог. Удаление действия загрузки действительно помогло, но основная причина на самом деле не из-за действия загрузки. Вы можете сохранить действие по загрузке, но для того, чтобы рендеринг загрузочного шаблона вам понадобился return true; из действия по загрузке, если вы не вернете true, тогда шаблон загрузки не будет отображаться.

Я думаю, что если вы не вернете истинное событие останавливается, распространяющуюся, который предотвращает поведение по умолчанию от случаться

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