使用.hbs文件中的模板在Ember 2.5中进行编程组件渲染

时间:2016-06-09 01:43:03

标签: ember.js ember-cli

可能已经有了一个问题/答案,但我似乎无法找到它。

我在 components / blah-component.js templates / components / blah-component.hbs 中定义了一个组件。

我需要以编程方式创建组件并将其内容附加到DOM。我成功地做了 .create(),但似乎无法从.hbs文件中自动加载组件的模板:

import Ember from 'ember';
import SrField from 'frontend/components/reports/sr-field';

...

const srField = SrField.create();
const el = document.createElement('div');

srField.appendTo(el);

这里生成的html只是一个空div。

我可以通过设置布局来指定模板:

layout: Ember.Handlebars.compile('Blah')

但如何从.hbs文件加载模板?

更新:

我想我明白了。我可以将模板文件导入到组件中,并将其用作布局属性:

import FieldTemplate from 'frontend/templates/components/reports/sr-field';

export default Ember.Component.extend({
    layout: FieldTemplate,

更新2:

我可以导入模板,如上面的UPDATE所述,或者在属性中创建它。行动很好。但是存在一个问题:找不到该模板中引用的任何其他组件:

 Assertion Failed: A helper named 'autoopen-modal' could not be found

更新3:

将此问题标记为重复,以便将人们引荐到我的另一个不同但相关的问题,其解决方案 - Ember Wormhole - 可以在这里使用。

0 个答案:

没有答案