【问题标题】:Json mustache for loop range: 1 to 1000循环范围的 Json 小胡子:1 到 1000
【发布时间】:2018-12-01 10:05:15
【问题描述】:

我正在使用 .yaml 和 json.mustache 来构建 aws cloudformation 模板。

我不想将 4040、4041...等列表硬编码 1000 次 小胡子有循环逻辑的概念吗?即我想要一个从 4040 到 5040 的循环。我想我可以指定范围的开始和结束,并让小胡子生成序列。

想要的输出:

{
    "InstancePort": 4040,
    "LoadBalancerPort": 4040,
    "Protocol": "HTTPS", "InstanceProtocol": "HTTPS"
},        
{
    "InstancePort": 4041,
    "LoadBalancerPort": 4041,
    "Protocol": "HTTPS", "InstanceProtocol": "HTTPS"
},        
{
    "InstancePort": 4042,
    "LoadBalancerPort": 4042,
    "Protocol": "HTTPS", "InstanceProtocol": "HTTPS"
}   

...等 直到5040

【问题讨论】:

    标签: javascript json loops yaml mustache


    【解决方案1】:

    您可以使用 Section 模板,例如 this:

    {{#ports}}
    {
      "InstancePort": {{port}},
      "LoadBalancerPort": {{port}},
      "Protocol": "HTTPS", "InstanceProtocol": "HTTPS"
    }   
    {{/ports}}
    

    并且在您的 Javascript 中有以下数据:

    ports: [...Array(1000).keys()].map(i => { return { port: i + 4040 }});
    

    上面的 ES6 映射将生成 1000 个数字,从 4040 到 5040。

    编辑:更新以包含正确的属性!

    【讨论】:

    • @tooptoop4 不幸的是没有。 Mustache 是无逻辑的,这意味着它不能执行自己的逻辑。您需要向 Mustache 渲染函数提供数据(如我上面的 codepen)。
    猜你喜欢
    • 2013-02-09
    • 1970-01-01
    • 2017-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-25
    • 2014-03-29
    • 2011-06-01
    相关资源
    最近更新 更多