在父级上下文中查找布尔值

时间:2018-11-20 20:37:56

标签: handlebars.js

我试图根据父上下文中是否存在值为true的属性来显示内容。

所以:

js

var products = [ {id: "a", desc: "Product A"}, 
                 {id: "b", desc: "Product B"} ]

var customers = [ {name: "John", a: true, b: true}, 
                  {name: "Mike", a: false, b: true} ]

hbs

{{#each customers}}
   Name: {{name}}
   {{#each ../products}}
     Has product {{desc}}: {{#if // something // }} Yes! {{else}} No. {{/if}}
   {{/each}}
{{/each}}

这是否有意义?在纯js中,我会使用类似的东西:

for(var c=0; c<customers.length; c++) {
  let customer = customers[c];
  for(var p=0; i<products.length; p++) {
     let product = products[p];
     let hasThisProduct = customer[product] ? 'yes!' : 'no.';
     [....]
  }
}

从我认为应该使用“查找”之前所读的内容开始,但是我无法弄清楚它如何适用于此用例?

1 个答案:

答案 0 :(得分:0)

在父上下文中指定this../this并使用id作为查找键:

lookup ../this id

您需要将查找放在方括号中,以便根据需要使用if测试返回的值,因此:

{{#if (lookup ../this id) }} Yes! {{else}} No. {{/if}}