0

车把模板:

<script id="address_template" type="text/x-handlebars-template">
    <fieldset class="form-fieldset">
        <div class="form-row form-row--half">
            \{{#each fields}}
                \{{{dynamicComponent 'components/common/forms'}}}
                <!-- I also tried `fieldType` instead of `dynamicComponent` -->
            \{{/each}}
        </div>
    </fieldset>
</script>

在上面的代码forms中是一个模板组件。

车把脚本:

<script type="text/javascript">
    var template = $("#address_template").html();
    var compiledCode = Handlebars.compile(template);
    var result = compiledCode({fields: state.data.getShippingAddressFields()});
    $('body').html(result);
</script>

错误:

缺少帮助程序:“dynamicComponent””

如何注册forms组件?

4

1 回答 1

1

我对代码应该在这里做什么有点困惑。在 Stencil 中,您不需要创建自己的 Handlebars 模板,因为编译都是在服务器端处理的。您不是在文件的标准流程中工作吗?

dynamicComponent 是一个帮助器,它遍历指定文件夹中的文件,找到与对象的“部分”值匹配的文件,并使用该文件渲染出对象。假设您在模板/组件中有一个“表单”文件夹,并且该文件夹中有几个 HTML 文件,那么您设置它的方式看起来是正确的。

于 2021-10-19T13:07:03.150 回答