在车把中使用“ #each”和多个变量

时间:2019-06-09 09:41:43

标签: handlebars.js

当Handelbars中有多个#each时,如何通过“ this”“选择”一个值?

                {{#each marqueauction}}
                {{#each modelauction}}
                <div class="results__container--box">
                    {{this.marqueauction}}
                    {{this.modelauction}}
                </div>
                {{else}}
                <div class="results__container--box">
                    <p>Aucun résultat d'enchères n'est disponible pour ce modèle.</p>
                </div>
                {{/each}}
                {{/each}}

编辑:我想用猫鼬调用我的MongoDB数据库,并在一个盒子容器中显示结果。为此,我遍历了结果数组。

我的猫鼬模型:

const DemocarauctionSchema = new Schema({
    objectID: {
        type: Number
    },
    cars_getroute: {
        type: String
    },
    gm_url: {
        type: String
    },
    "results": { type: [{
        marque: {
            type: String
        },
        model: {
            type: String
        },
        model_year: {
            type: String
        },
        price_str: {
            type: String
        },
        prince_int: {
            type: Number
        },
        price_currency: {
            type: String
        },
        sold: {
            type: Boolean
        },
        auction_house: {
            type: String
        },
        auction_country: {
            type: String
        },
        auction_date: {
            type: String
        },
        auction_datetime: {
            type: String
        },
        auction_url: {
            type: String
        },
        image_urls: {
            type: String
        },
        price_int_eu: {
            type: Number
        },
    }]}    
}

我遍历Express / Node中的数组:

const [democarauctions] = result;

        let marqueauction = [];
        for (let i = 0; i < democarauctions.results.length; i++) {
            marqueauction.push(democarauctions.results[i].marque)
        }

        let modelauction = [];
        for (let i = 0; i < democarauctions.results.length; i++) {
            modelauction.push(democarauctions.results[i].model)
        }
...

然后在我的“ res.render”中调用结果数组:

res.render(demo, {
            results: democarauctions.results,
            marqueauction: marqueauction,
            modelauction: modelauction,
            modelyearauction: modelyearauction,
            etc.})

现在,我想在HTML上为每个结果呈现多个框,其中每个都带有marauauction,modelauction和modelyearauction。我使用把手。

1 个答案:

答案 0 :(得分:1)

最好避免使用this,而应使用命名为block parameters

{{#each marqueauction as |marque|}}
  {{#each modelauction as |model|}}
    <div class="results__container--box">
      {{marque}}
      {{model}}
    </div>
  {{else}}
    <div class="results__container--box">
      <p>Aucun résultat d'enchères n'est disponible pour ce modèle.</p>
    </div>
  {{/each}}
{{/each}}

我不确定您为什么将原始集合拆分为多个集合,然后尝试在演示文稿中再次将它们合并。只需直接使用结果即可。

编辑:根据您更新的问题:

{{#each results as |auction|}}
  <div class="results__container--box">
    {{auction.marque}}
    {{auction.model}}
  </div>
{{else}}
  <div class="results__container--box">
    <p>Aucun résultat d'enchères n'est disponible pour ce modèle.</p>
  </div>
{{/each}}