handlebars的registerHelper怎么自定义一个循环?

我现在有个需求:定义一个自定义的标签,这个标签会从数据库中查询数据返回一个array,怎么写?

类似于each的功能:
{{#each users}}

<li></li>

{{/each}}

改成
{{#findUsers}}
<li></li>
{{/findUsers}}

阅读 3.5k
1 个回答

同步

Handlebars.registerHelper('findUsers', function (options) {
    var users = [
        {name: 'xxx', id: 2},
        {name: 'yyy', id: 3}
    ];

    var ret = '';

    users.forEach(function (user) {
        ret = ret + options.fn(user);
    });

    return ret;
});

{{#findUsers}}
    <a href="{{id}}">{{name}}</a>
{{/list}}

异步

Handlebars.registerAsyncHelper('findUsers', function (options,callback) {
    var users = [
        {name: 'xxx', id: 2},
        {name: 'yyy', id: 3}
    ];

    var ret = '';

    users.forEach(function (user) {
        ret = ret + options.fn(user);
    });

    callback(ret);
});

{{#findUsers}}
    <a href="{{id}}">{{name}}</a>
{{/list}}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题