如何在呈现模板时调用didInsertElement,因为在Ember 1.13中不推荐使用View

Fie*_*age 1 ember.js

我正在更新到Ember 1.13,我想在我用来从View调用didInsertElement的应用程序模板的后台淡入淡出.

App.ApplicationView = Ember.View.extend({
    didInsertElement: function() {
        $('#login-bg').fadeIn(600);
    }
});
Run Code Online (Sandbox Code Playgroud)

抛出一个已弃用的因为视图正在消失.Ember是否为模板创建了一个组件?这不起作用:

App.ApplicationComponent = Ember.Component.extend({
    didInsertElement: function() {
        $('#login-bg').fadeIn(600);
    }
});
Run Code Online (Sandbox Code Playgroud)

Tom*_*and 5

到目前为止,还没有默认的应用程序组件在幕后工作,但您可以创建一个并将应用程序模板包装在其中,如下所示:

// app/templates/application.hbs
{{#application-area}}
  {{outlet}}
{{/application-area}}


// app/templates/components/application-area.hbs
<div id="login-bg">
  {{yield}}
</div>


// app/components/application-area.js
import Ember from 'ember';

export default Ember.Component.extend({
  didInsertElement () {
    Ember.$('#login-bg').fadeIn(600);
  }
});
Run Code Online (Sandbox Code Playgroud)

  • 他们正在计划制作可用于支持模板的可路由组件,但在此之前您仍然可以使用该视图,它只是被弃用以警告您创建大量视图并尽可能移动到组件. (2认同)