javascript - 延迟 ember.js 应用程序准备,直到初始 ajax 调用返回

标签 javascript ember.js

(使用 Ember 1.0.pre)

当我的 Ember.js 应用首次为给定用户加载时,我想进行一次 ajax 调用,并且在该一次调用返回之前不加载任何与 ember 数据相关的数据。这是我认为我需要做的,但我不确定如何实现它:

  • 在应用程序上实现ready()
  • 在应用程序上调用deferReadiness()
  • 发起ajax调用
  • 在 ajax 回调处理程序中调用 advanceReadiness()

我不知道我需要如何或在哪里调用 deferReadiness()。这是我尝试过的及其结果:

SocialRoi = Ember.Application.create({
  ready: function() {
    this.deferReadiness();
    console.log('SocialRoi almost ready...');
    this.advanceReadiness();
    return this._super();
  }
});

// RESULT:
// Uncaught TypeError: Object SocialRoi has no method 'deferReadiness'

知道我做错了什么吗?有没有更好的方法来实现我的目标?谢谢。

最佳答案

您可以这样做,例如将 Ember 与 SignalR 一起使用。

APP = Ember.Application.create({
  appname: "MyEmberApp",
  ready: function () {
    console.log("hello from ember");

    if (Ember.empty($.connection.hub) || !$.connection.hub.stateChanged) {
      alert('SignalR error');
      return;
    }
  }
});

APP.deferReadiness();
$.connection.hub.url = 'http://localhost:8085/signalr';
$.connection.hub.logging = true;
$.connection.hub.start()
  .done(function () {
    console.log("SignalR started!");
    APP.advanceReadiness();
  })
  .fail(function () {
    alert('SignalR error)';
  });

APP.Router = Ember.Router.extend({
  ...
});

APP.initialize();

关于javascript - 延迟 ember.js 应用程序准备,直到初始 ajax 调用返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12463516/

相关文章:

javascript - 如何在javascript中使用多个规则拆分字符串

javascript - 使用 Nightwatch (Selenium2) 无法找到包含 "anchor"的元素

css - 如何在 Ember 中使用 css 动画

ember.js - 使用 Oauth2 token 恢复没有电子邮件和密码的 session

javascript - Gulp 文件与 browsersync 的集成

javascript - Apple 脚本在 safari 中单击按钮不起作用

ember.js - ember-2.0 尖括号组件不适用于 ember-cli@0.2.7

javascript - Ember 错误 : Assertion Failed: `id` passed to `findRecord()` has to be non-empty string or number

javascript - 为 Ember 计算属性依赖键使用常量

javascript - 无法从 DOM 中的输入文本获取值