在ember模板渲染后运行jQuery的位置?

时间:2015-11-14 08:13:03

标签: ember.js ember-cli

在不推荐使用Views的情况下,我无法识别模板渲染后运行jQuery的位置。

我有一个简单的食物资源索引模板(templates / foods / index.hbs),并希望在index.hbs渲染后运行以下jQuery:

this.$('[data-toggle="tooltip"]').tooltip();

我知道可以创建一个具有didInsertElement钩子的组件,但是如果我这样做的话,我还不清楚我如何路由到组件。然后我会" dip dip"通过让我的apps/templates/foods/index.hbs模板简单地调用新的Component,它将拥有自己的模板,该模板将是原始的index.hbs模板?

我确定我在这里遗漏了一些简单的东西。有人想指出我正确的方向吗?

1 个答案:

答案 0 :(得分:4)

您可以在路线中调用jQuery:

export default Ember.Route.extend({
  actions: {
    didTransition() {
      Ember.run.next(this, 'initTooltip');
    }
  },
  initTooltip() {
    Ember.$('[data-toggle="tooltip"]').tooltip();
  }
});

您还可以创建组件并在模板中使用它,如下所示:

{{tooltip-wrapper}}
  <!-- HTML here -->
{{/tooltip-wrapper}}

并在didInsertElement组件的tooltip-wrapper中调用jQuery代码。