Javascript 如何将事件处理程序添加到Ember.js中的路由显示事件?
我在Ember.js中有一个简单的站点,它有:Javascript 如何将事件处理程序添加到Ember.js中的路由显示事件?,javascript,jquery,ember.js,fancybox,Javascript,Jquery,Ember.js,Fancybox,我在Ember.js中有一个简单的站点,它有: App.Router.map(function() { this.resource('main', { path: '/main' }); this.route('sub', { path: '/sub' }); 模板如下: <script type="text/x-handlebars" data-template-name="main/sub"> <a href='image.jpg' class
App.Router.map(function() {
this.resource('main', { path: '/main' });
this.route('sub', { path: '/sub' });
模板如下:
<script type="text/x-handlebars" data-template-name="main/sub">
<a href='image.jpg' class='fancyBox'><img src='image.jpg'></a>
</script>
现在我需要在显示main/sub时调用它。这必须在显示模板主/辅后完成
因此,如何将事件绑定到显示的模板以调用fancybox?一种可能的方法是创建一个
main子视图,并挂接到函数中:
$("a.fancyBox").fancybox();
App.MainSubView = Ember.View.extend({
didInsertElement: function() {
$("a.fancyBox").fancybox();
}
});
将视图插入DOM时将调用该函数
另外值得一提的是,如果在从DOM中删除视图后,对fancybox()
的调用需要一些清理,那么您可以在对应的钩子中执行此操作
例如:
App.MainSubView = Ember.View.extend({
didInsertElement: function() {
$("a.fancyBox").fancybox();
},
willDestroyElement: function() {
// remove here the displayed fancybox
}
});
希望有帮助。一种可能的方法是创建一个main子视图
并挂接到函数中:
$("a.fancyBox").fancybox();
App.MainSubView = Ember.View.extend({
didInsertElement: function() {
$("a.fancyBox").fancybox();
}
});
将视图插入DOM时将调用该函数
另外值得一提的是,如果在从DOM中删除视图后,对fancybox()
的调用需要一些清理,那么您可以在对应的钩子中执行此操作
例如:
App.MainSubView = Ember.View.extend({
didInsertElement: function() {
$("a.fancyBox").fancybox();
},
willDestroyElement: function() {
// remove here the displayed fancybox
}
});
希望有帮助。啊。。。美好的谢谢:)啊。。。美好的谢谢:)