Ember component 什么是layout,函数怎么写?

Ember component what is layout and how to write the functions?

我创建了一个组件,它的输出为:

import Ember from 'ember';
import layout from '../templates/components/sample-work';

export default Ember.Component.extend({
  layout
});

当我尝试添加一些初始化方法时:

import Ember from 'ember';
import layout from '../templates/components/sample-work';

export default Ember.Component.extend({
  layout,
  init(){
    alert.log('hi');
  }
});

我的组件根本没有被调用。这里有什么问题?此处处理组件的正确方法是什么?

通常您不需要 js 文件中的 layout;因为ember是一个自以为是的框架,它通常会把组件的jshbs文件放在默认可以自动匹配的地方:js放在[=16下面=] 和 hbs 文件放在 templates\components.

以防万一;您将模板文件放到无法直接用于 js 您需要导入布局的文件的地方。看看我为你准备的simple twiddle。在这玩意儿里; my-component2 的模板文件需要导入为相应 js 文件中的 layout 字段。

您应该始终在初始化函数中调用 this._super(...arguments)