在EmberJS中创建初始化脚本

时间:2014-09-29 19:59:01

标签: ember.js

Emberjs初学者。

我有一个Emberjs应用程序,我需要在加载jquery后执行initialize函数。

我将把initialize函数放在哪里以及如何调用它?

2 个答案:

答案 0 :(得分:2)

您正在寻找Ember初始化器。

Ember.Application.initializer({

    name: 'my-initializer',
    after: 'some-other-initializer',

    initialize: function(container, application) {
        application.deferApplicationReadiness();
        application.register(...);

        very_long_initialization_task_returning_promise().then(function() {
            application.advanceApplicationReadiness();
        });
    }
});

您可以使用初始化程序在商店中预加载某些内容,组织依赖项注入等。after属性可以设置初始化程序的顺序。 deferApplicationReadinessadvanceApplicationReadiness允许您在应用程序准备就绪时告诉Ember。

有关详细信息,请参阅http://emberjs.com/api/classes/Ember.Application.html#method_initializer

如果您使用的是ember-cli,请将哈希值从Ember.Application.initializer文件传递到默认导出上方的initializers/my-initializer.js

export default {
    name: 'my-initializer',
    ...
}

答案 1 :(得分:0)

你可以这样做......假设时间在加载所有内容和DOM准备就绪之间并不重要等等...点击"运行代码片段"看到" JavaScript" 1秒后改变航向。



var App = Ember.Application.create();

App.reopen({
  ready: function() {
    setTimeout(function() {
        Ember.$('#thing').text('FavaBean');
    }, 1000);
  }
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://builds.emberjs.com/handlebars-1.0.0.js"></script>
<script src="http://builds.emberjs.com/ember-latest.js"></script>

<h1 id="thing">JavaScript</h1>
&#13;
&#13;
&#13;