我有一个带有控制器header.js
和模板header.hbs
的ember应用程序。
现在我需要在文档$( document ).ready()
我在Ember Views上看到有didInsertElement
但是如何从控制器执行此操作?
// controllers/header.js
import Ember from 'ember';
export default Ember.Controller.extend({
});
// views/header.js
import Ember from 'ember';
export default Ember.Controller.extend({
});
// templates/header.js
test
我多次阅读使用Ember Views不是一个好习惯吗?
答案 0 :(得分:7)
未插入控制器(视图为)因此没有didInsertElement。
如果你需要运行一次,可以这样写:
import Ember from 'ember';
export default Ember.Controller.extend({
someName: function () { // <--- this is just some random name
// do your stuff here
}.on('init') // <---- this is the important part
});
答案 1 :(得分:1)
一个更实际的答案(Ember 2.18 +),同时遵循用户amenthes回答中提到的相同原则:不再建议使用Ember的函数原型扩展。相反,您可以直接覆盖控制器的init()
方法。请注意,您必须致电this._super(...arguments)
以确保所有与Ember相关的代码都运行:
import Controller from '@ember/controller';
export default Controller.extend({
init() {
this._super(...arguments); // Don't forget this!
// Write your code here.
}
});