2016-09-18 4 views
-1

Я использую систему загрузки «Emberjs», используя . Загрузок: Шаблон и все работает очень хорошо.Эмбер, состояние загрузки, задержка загрузки шаблона, тайм-аут

Теперь мне нужно «задержать» загрузку, скажем, за одну секунду до ее появления.

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

Как это сделать?

Пример:

Моя модель запрос требуется время для загрузки, хорошо, я жду одну секунды, и только после 1 второго я показываю шаблон загрузки (а затем, при решимости обещания маршрута я назвал).

Как я могу установить эту задержку элегантным способом?

+0

Где вы делаете запрос ajax?. держите его в режиме крюка маршрута, чтобы страница не отображалась unitl, она разрешает запрос ajax. в течение этого времени будет отображаться load.hbs. Это то, что вы ищите. – kumkanillam

+0

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

ответ

1

Возможно, вы захотите установить таймаут с помощью Ember.run.later с требуемой задержкой и вернуть обещание в функцию обратного вызова.

model() { 
    return new Ember.RSVP.Promise(() => { 
    Ember.run.later(function() { 
     return this.store.query('my-object'); 
    }, 3000); 
    }); 
}, 
+0

Нет, @ Ахмед, это не то, о чём я спросил. –