javascript - Handlebars 自定义如果等于助手不编译

标签 javascript handlebars.js

我在 Handlebars 中添加了一个自定义帮助程序来完成 if == "some string" 类型的帮助程序。辅助代码是这样的:

Handlebars.registerHelper('if_eq', function(a, b, opts) {
    if(a == b) // Or === depending on your needs
        return opts.fn(this);
    else
        return opts.inverse(this);
});

模板是这样的:

<div id="appStoreParametersModal" class="modal-dialog">
    <div class="modal-content appStoreParametersModal">
        <div class="modal-header hypersignModalHeader">
            <h3>{{appName}}</h3>
        </div>
        <div class="modal-body">
            <div id="app-params">
                {{#each appParm}}
                <form>
                    {{#if_eq uiControlType "text"}}
                    <div class="form-group">
                        <label for="{{qsName}}">{{uiName}}</label>
                        <input type="text" class="form-control" id="{{qsName}}" placeholder="{{uiName}}"/>
                    </div>
                    {{else if_eq uiControlType "dropdown"}}
                    <div class="form-group">
                        <label for="{{qsName}}">{{uiName}}</label>
                        <select class="form-control" id="{{qsName}}">
                            {{#each defaultVals}}
                                <option value="{{value}}">{{displayName}}</option>
                            {{/each}}
                        </select>
                    </div>
                    {{/if_eq}}
                </form>
                {{/each}}
            </div>
        </div>
        <div class="modal-footer">
            <button type="button" class="btn btn-warning cancel" data-dismiss="modal" id="cancel">Cancel</button>
            <button type="button" class="btn btn-success" id="appStoreNext">Next</button>
        </div>
    </div>
</div>

我收到这个错误:

Uncaught Error: if_eq doesn't match each

这似乎是使用 {{else}} 的问题,因为如果我只使用 if_eq 助手而不使用 else ,那么它工作正常。我是 Handlebars 的新手,所以我确定我错过了一些愚蠢的东西。

最佳答案

if_eq doesn't match if 当你有 {{#if_eq stuff "stuff"}} 但你错误地在 {{/if}} 而不是 {{/if_eq}}

关于javascript - Handlebars 自定义如果等于助手不编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31898667/

相关文章:

javascript - angularjs 在不同文件中为同一模块定义服务

javascript - Handlebars 模板无法处理来自 Backbone 的 JSON

meteor - #if Handlebars 中的语句

javascript - 每个 block 传递多个参数 Handlebars

javascript - 如何从模板中提取 Handlebars 列表?

javascript - 部分内容未在动态网页上呈现

Javascript - 编译语言?

javascript - 使用 if/then Javascript 输出 HTML?

javascript - 如何根据点击位置查找嵌套和转换的 SVG 元素(例如圆/路径/...)

javascript - Jquery onclick 函数在动态添加的按钮元素上调用了两次