【问题标题】:didInsertElement in Ember 2.0+Ember 2.0+ 中的 didInsertElement
【发布时间】:2015-11-14 18:44:08
【问题描述】:

Ember.View 已弃用,取而代之的是 Components。这很好,但我无法理解 2.0 版本。

大多数情况下,我使用didInsertElement 挂钩来运行一些jQuery 代码等。但是现在Em.View 类已被弃用,我怎样才能实现相同的目标?我不想创建一个组件或类似的东西。为普通页面(路由)创建组件是没有意义的。仅仅因为它不是可重用的东西加上组件的范围是孤立的。

假设我们有一个 about 路线,当模板被渲染时,我只想晒一些 jQuery 代码。如何在 Ember 2.0+ 中执行此操作?

【问题讨论】:

    标签: ember.js


    【解决方案1】:

    您可以利用didTransition 钩子和Ember.run.next。检查我的解决方案:

    export default Ember.Route.extend({
      actions: {
        didTransition() {
          Ember.run.next(this, 'initParticles');
        }
      },
      initParticles() {
        let ammount = (window.matchMedia('(max-width: 456px)').matches) ? 40 : 100;
        particlesJS('particles-js', {
          // my options
        });
      }
    });
    

    【讨论】:

    • 谢谢丹尼尔,这也很好用。既然不推荐使用 Views,那么在路由文件中保留这样的代码可以吗?
    【解决方案2】:

    虽然这似乎不是最好的方法,但创建组件可能是您的最佳选择。很快我们将拥有可路由的组件,它将接管控制器和视图的大部分工作。创建一个组件并将其插入到您的模板中应该可以让您为可路由组件做好准备。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多