首页 > 解决方案 > 如何在车把的 if 条件内使用 if

问题描述

{{#if docs}}
    {{#each docs}}
        <h4>customer number : {{this.customer}}</h4>
        <h4>number of liters required : {{this.volume}}</h4>
        {{#if alldri}}
            {{#each alldri}}
                <h5>{{this.name}}</h5>
            {{/each}}
        {{/if}}
    {{/each}}
{{/if}}

docs 和 alldri 都是 JSON 数组。docs 数组下的所有对象都打印得很好,但无法看到 alldri 数组下的对象。

alldri 数组是

[ { _id: 5c94c61f955fa804fc96657c,
    name: '1',
    phonenumber: '9640121413',
    email: 'taditarun123@gmail.com'
    __v: 0 },
  { _id: 5c94c683955fa804fc96657d,
    name: '2',
    phonenumber: '9493447471',
    email: 't@gmail.com'
    __v: 0 } ]

文档数组是

[ { _id: 5c93a9812671d127785c105e,
customer: '1',
merchant: '11',
volume: '12',
__v: 0 } ]

标签: handlebars.jsexpress-handlebars

解决方案


您的问题实际上与if指令无关。它与范围有关。当您在each指令中时,您将无法访问父范围。所以你不能进入alldri里面。这就是为什么它评估为假而不渲染该内容的原因。

请参阅使用 Handlebars 'each' 循环访问父级的属性

如果您的模板更改为:

{{#if docs}}
    {{#each docs}}
        <h4>customer number : {{this.customer}}</h4>
        <h4>number of liters required : {{this.volume}}</h4>
        {{#if ../alldri}}
            {{#each ../alldri}}
                <h5>{{this.name}}</h5>
            {{/each}}
        {{/if}}
    {{/each}}
{{/if}}

注意../alldri.

https://jsfiddle.net/nowgy52m/7/


推荐阅读