Ember 使用单独的子模板文件

Ember use separate child template files

我有以下模板文件(实际用于我的组件)

{{#each details.secs as |sec|}}
    <div class="row">
    {{#each secs.flds as |fld|}}
        // if fld.id is 'abc', use abc.hbs
        // if fld.id is 'xyz', use xyz.hbs
    {{/each}}
    </div>
{{/each}}

我的问题是如何使用单独的子模板文件并将它们包含在上面的父文件中(基于条件)

因此如果 field.id 是 'abc',它应该使用来自 abc.hbs 的渲染逻辑 另外 abc.hbs 需要 'field' 模型输入用于渲染目的(它的输出应该附加到主模板)

使用 Ember 2.0,创建和注册我们自己的 eq(等于)助手非常容易:

ember generate helper eq

包括我们的相等函数:

// app/helpers/eq.js


import Ember from 'ember';

export function eq(params, hash) {
  return (params[0] === params[1]);
}

export default Ember.Helper.helper(eq);

并使用它!

{{#each details.sections as |section|}}
    <div class="row">
    {{#each section.fields as |field|}}
        {{#if (eq field.id "abc")}}
            {{abc-component data=field}}
        {{/if}}
        {{#if eq field.id "xyz)}}
            {{xyz-component data=field}}
        {{/if}}
    {{/each}}
    </div>
  {{/each}}