从Controller或Route

时间:2015-08-13 08:28:47

标签: javascript jquery ember.js

我有下一个结构:

  • builder.hbs(模板)
  • builder.js(route)
  • builder.js(controller)

我想在呈现模板时执行一些jQuery代码。我找到了使用View和didInsertElement的旧解决方案,但在这种情况下我没有View。那么,是否可以从路由或控制器执行jQuery代码?

jQuery代码:

this.$("#filtersMenu").fixedsticky();

1 个答案:

答案 0 :(得分:2)

控制器视图上有didInsertElement。如果您说IndexController,那么在views/index.js中您将拥有:

export default Ember.View.extend({
  didInsertElement: function(){
    this.$('#filtersMenu').fixedsticky();
    this._super();
  }
});

JSFiddle:http://emberjs.jsbin.com/kegere/1/edit?html,js,output除了全局jQuery总是在Ember.$上:

Ember.$('#filtersMenu').fixedsticky();

那就是说你应该考虑把它放到一个完全负责渲染它的组件中。