渲染模板时是否可以在Ember中捕获全局事件?
这样我就可以在每个模板的基础上调用初始化脚本,如上所述。这不是初始化者的候选者 - 我试图在我的应用程序中的大约30%的页面上初始化一些jQuery插件,所以这样做一次而不是重复我自己会很棒。
无法使用全局钩子,钩住正在呈现的模板的最合适位置是什么?我只使用模板,所以我无法将didInsertElement
捕获到视图上。
答案 0 :(得分:1)
我不知道这是不是正确的方法,但我试了一下,因为你的问题让我感兴趣。以下似乎有效:http://emberjs.jsbin.com/pujiqipafe/1/edit?html,js,output
基本上我使用路由挂钩renderTemplate
并添加:
Ember.run.scheduleOnce('afterRender', myfunction);
调用this.render()
。
你可以通过制作
来扩展它App.MyJqueryRoute = Ember.Route.Extend({
renderTemplate: function(){
this.render();
var myjquery = function(){
//do your jQuery stuff here
};
Ember.run.scheduleOnce('afterRender', myjquery);
}
});
然后只需在您需要此功能的路线中展开App.MyJqueryRoute
而不是Ember.Route.Extend
。
(这是我在阅读你的帖子时提出的建议,我不是一个烬专家,所以我很乐意听到任何其他解决方案或改进我的社区解决方案)