javascript - Ember 使用单独的子模板文件

标签 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 需要“字段”模型输入用于渲染目的(其输出应附加到主模板中)

最佳答案

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

关于javascript - Ember 使用单独的子模板文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33240639/

相关文章:

javascript - 检查字符串是否匹配 JS 中的正则表达式

javascript - Google 跟踪代码管理器以及使用触发器或标记排序

node.js - 设置 Handlebars 助手以快速返回每个请求的特定值

javascript - 将数据从 Controller 传递到 Ember 中的路由

javascript - 使用 CSS 的复杂响应式 HTML 布局

templates - 什么是无逻辑模板

javascript - 如何在递归函数内完成for循环?

javascript - Chrome 扩展程序 : How to add a button to a page on a web site and add a click handler to it?

javascript - 使用 sinon 在 Ember App Kit 中测试 Ember Simple Auth

html - Foundation 中的垂直图标栏未占据全高