【问题标题】:Handlebars lookup object using key from array?车把使用数组中的键查找对象?
【发布时间】:2020-12-15 17:22:57
【问题描述】:

我有一个带有数组和对象的对象。我迭代数组(字段) - 使用它作为模板来创建表单元素。我想 - 在此过程中 - 从对象(数据)中获取相应的对象值。

{
    "fields": [
        {
            "name": "id",
            "type": "int",
            "max_length": 11,
        },
        {
            "name": "email",
            "type": "varchar",
            "max_length": 191,
        }
    ],
    "data": {
        "id": "4",
        "email": "person@domain.com",
    }
}

类似这样的东西(思维导图):

{{#each fields}}
    <li>
        lookup {{lookup ../data => VALUE OF CORRESPONDING KEY ("id" or "email" etc.)}}
        <label for="{{name}}">{{CamelCase name}}</label>
        {{InputType name type}}
    </li>
{{/each}}

因此,当字段名称为“id”时,我想从对象等中获取“id”的值。

我似乎无法完全理解查找...还是有其他更聪明、更直接的方法来实现这一点?

【问题讨论】:

    标签: handlebars.js lookup


    【解决方案1】:

    当您说“当字段名称为 'id' 时,我想从对象中获取 'id' 的值”时,我认为您很好地总结了所需的逻辑。

    换句话说,您想对data 对象执行lookup,而name 变量的值是要查找的键。

    查找很简单:{{lookup ../data name}}name 将评估为要在上下文对象 ../data 上查找的所需键。

    【讨论】:

      【解决方案2】:

      谢谢,最终这样做了(将数据传递给助手):

      {{#each fields}}
          <li>
              <label for="{{name}}">{{CamelCase name}}</label>
              {{InputType name type ../data }}
          </li>
      {{/each}}
      
      

      然后在帮助器中提取值:

      Handlebars.registerHelper("InputType", function ( name, type, value) {
          switch ( type ) { …
          … value="' + value[name] + '">');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-03-04
        • 1970-01-01
        • 2017-01-11
        • 1970-01-01
        • 2020-09-15
        • 2015-03-08
        • 1970-01-01
        相关资源
        最近更新 更多