Emberjs初学者。
我有一个Emberjs应用程序,我需要在加载jquery后执行initialize
函数。
我将把initialize
函数放在哪里以及如何调用它?
答案 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
属性可以设置初始化程序的顺序。 deferApplicationReadiness
和advanceApplicationReadiness
允许您在应用程序准备就绪时告诉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;