1

我想知道是否可以在车把中使用可能的 AND 语句来制作类似的东西:如果不是,那么最好的方法是什么?


这是javascript上下文:

{
  title: "My first post!",
  author: {
    firstName: "Charles",
    lastName: "Jolley"
  }
}

这是 HTML 上下文:

<div class="entry">
  {{#if firstName && lastName}}
  <h1>{{firstName}} {{lastName}}</h1>
  {{/if}}
</div>
4

1 回答 1

2

不,本机{{#if}}不理解这种语法。但是,您可以轻松地为类似的事情添加自己的助手,如果您不介意弄乱arguments.

唯一棘手的部分是要注意 helper 的 block 参数总是排在最后。

像这样简单的事情就可以解决问题:

Handlebars.registerHelper('if_all_true', function() {
    var args  = Array.prototype.slice.call(arguments);
    var block = args.pop();
    for(var i = 0; i < args.length; ++i)
        if(!args[i])
            return block.inverse(this);
    return block(this);
});

演示:http: //jsfiddle.net/ambiguous/jMLcZ/

于 2012-07-31T16:55:16.373 回答