Как использовать if внутри условия if в руле - PullRequest
1 голос
/ 22 марта 2019
{{#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 } ]

1 Ответ

0 голосов
/ 25 марта 2019

Ваша проблема на самом деле не в директивах if. Это с размахом. Вы теряете доступ к родительской области, когда находитесь внутри директивы each. Таким образом, вы не можете получить доступ к alldri внутри. Вот почему он оценивается как ложный и не отображает этот контент.

См. Доступ к свойствам родителя с помощью цикла «каждый» Handlebars .

Ваш код будет работать, если ваш шаблон будет изменен на:

{{#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/

...