Javascript 如何将事件处理程序添加到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

我在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='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
  }
});

希望有帮助。

啊。。。美好的谢谢:)啊。。。美好的谢谢:)