【发布时间】:2014-03-11 11:40:56
【问题描述】:
您好,我使用Ember app kit,每次更改路线时都需要触发didInsertElement(子视图-插座视图)。我需要全局应用 DOM 就绪事件之类的东西。
我找到了mavilein's solution,但它不起作用。
这是我的app/views/application.js:
export default Ember.View.extend({
didInsertElement : function(){
this._super();
Ember.run.scheduleOnce('afterRender', this, this.afterRenderEvent);
},
afterRenderEvent : function(){
// implement this hook in your own subclasses and run your jQuery logic there
console.log("FIREEEEE");
}
});
当我运行应用程序时,它会触发didInsertElement,但是当我更改路由(点击链接)时,它不会触发应用程序视图didInsertElement 事件。
我知道应用程序视图不会改变,但我需要每次更改子视图时都会触发的东西。还是我在破坏架构并以其他方式做事?
感谢您的帮助。
【问题讨论】:
-
你每次都想做什么?
-
@kingpin2k 我想执行Holder.run()插件重绘图片。
-
我不确定与 EAK 的关系,但您需要运行 Holder 。 ember 运行循环中的 run()。所以需要在 Ember.run() 中调用 Holder.run()
-
@rick 以及我如何在 ember 运行循环中调用它?正如您在代码中看到的那样,我已经调用了
Ember.run.scheduleOnce(...),但它只在应用程序运行时调用了一次。 -
现在我正在考虑它。这只会在插入应用程序视图时运行一次。如果您重新打开 Ember 视图 (Ember.View.reopen({...}) 并添加相同的代码,它可能会起作用。值得一试。
标签: javascript ember.js domready ember-app-kit