Ember使用单独的子模板文件

时间:2015-10-20 15:26:15

标签: javascript ember.js handlebars.js

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

{{#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'模型输入用于渲染目的(它的输出应该附加到主模板)

1 个答案:

答案 0 :(得分:1)

使用Ember 2.0,创建和注册我们自己的eq(equals)帮助非常简单:

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}}