ember.js - 如何处理加载结束事件?

标签 ember.js promise loading

我有以下测试应用程序,实现 loading事件:

App = Ember.Application.create();

function delayedPromise(delay, value) {
    delay = delay || 3000;
    value = value || { msg: 'Delayed promise has been fulfilled' };
    var promise = new Ember.RSVP.Promise(function(resolve) {
        Ember.run.later(function() {
            console.info('Delayed promise has been fulfilled');
            resolve(value);
        }, delay);
    });
    return promise;
}

App.ApplicationRoute = Ember.Route.extend({
  beforeModel: function() {
    return delayedPromise();
  },

  actions: {

    loading : function() {
      $.blockUI();
    },

  }
});

它按预期工作:UI 被 loading 事件阻止。

如何解锁 UI ($.unblockUI())?是否有一个 loadingFinished (或类似)操作可以在所有模型完成解析时实现?

工作 jsbin here .

最佳答案

Legacy Loading Route 为例你可以:

App.ApplicationRoute = Ember.Route.extend({
  beforeModel: function() {
    return delayedPromise();
  },

  actions: {

    loading : function() {
      $.blockUI();
      this.router.one('didTransition', $, 'unblockUI');
    },

  }
});

关于ember.js - 如何处理加载结束事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27949635/

相关文章:

ember.js - this.get (‘model’ ).addObjects(records);抛出异常 “Uncaught TypeError: internalModel.getRecord is not a function”

typescript - ionic 2 : Loading component doesn't always dismiss (randomly)

php - 在 PHP 中加载类的最有效方法

javascript - Ember-charts 导致无法在对象上找到属性 'pie-chart'

javascript - 如何将 Bootstrap 日期选择器添加为 Ember 组件

loops - Cypress.io 迭代元素列表以查看文本是否不存在,然后执行操作以添加元素

debugging - Q Promises - 将拒绝转换为未处理的异常

c - 为什么有些程序比我的程序快得多?

model - Ember.js ArrayProxy 模型数组

javascript - 传播 Promise 并在新对象中扩展