Handlebars - 从另一个对象/arrA[object.num].value 获取带有索引号的数组值

Handlebars - getting value of array with an index-number from another object / arrA[object.num].value

编辑

感谢 76484!

我在这里添加了更多内容以使问题更清楚。

我想在我的把手中访问“handlungsstrang[karte[x].strang].farbe”并更改 div.

的背景颜色

“handlungsstrang”(1,2,3) 的每个“Karte”(1 - x) 应该具有相同的颜色。

我用以下方式呈现网页:

   res.render("index", {
      myDoc: myInit.myDoc,
    });

myDoc(来自 file.json - 看起来像这样(缩短):

{
  "projektTitel": "Plotter Test",
  "filename": "editDoc.json",
<….>
  "dramturgiefarbe": "#00FFFF",
  "handlungsstrang": [
    {"name": "A-Strang", "beschreibung": "Heldin ermittelt den Mörder", "farbe": "#34C534", "initProzent": 50, "symbol": "A", "rausgeschoben": "false"},
    {"name": "B-Strang", "beschreibung": "Heldin ermittelt den Mörder", "farbe": "#666666", "initProzent": 30, "symbol": "B", "rausgeschoben": "false"}
  ],
  "minidisplay": {
    "sichtbar": true
    },
  "karte": [ {
      "uuid": "0",
      "farbe": "#34C534",
      "strang": 0,
      "band": 1,
      "isAnmerkungsKarte": 0
    },
    {
      "uuid": "2",
      "farbe": "#CEE960",
      "strang": 1,
      "band": 1,
      "isAnmerkungsKarte": 0
    }
    {
      "uuid": "3",
      "farbe": "#CEE960",
      "strang": 3,
      "band": 1,
      "isAnmerkungsKarte": 0
    }
  ]  
}

这在 fiddle 中有效 - 感谢 76484!

    {{#each karte}}
    {{lookup (lookup ../handlungsstrang strang) 'farbe'}}
    {{/each}}

这不在我的网站上:

<div class="papierkorbbereich">

    {{#each myDoc.karte}}
    {{@index}}
    >{{lookup (lookup ../handlungsstrang strang) 'farbe'}}<
     
    {{/each}}
</div>

结果:1><2><3>< …

真气人。我做错了什么...?

解决方案

我已将解决方案包含在此处,以防有人正在寻找它并希望获得快速答复。这是对我有用的:

handlungsstrang[ karte[x].strang].farbe // 带把手: => {{查找(查找@root/myDoc/handlungsstrang strang)'farbe'}}

{{#each myDoc.karte}}
    {{lookup (lookup @root/myDoc/handlungsstrang strang) 'farbe'}}
    {{/each}}

因为您没有格式化示例中的代码(您的 Handlebars 模板甚至不包含任何把手,{}!),所以帮助您变得更具挑战性。

但是,正如我在评论中提到的,您应该使用 lookup 助手来查找对象的值。

您的用例将需要两次查找:首先根据每个 CardstrangNo(大概)提供的索引从 Strang 数组中查找项目。其次,您需要在返回的 Strang 上查找 color 属性。 Handlebars 允许您使用 subexpressions.

嵌套查找

您的模板变为:

{{#each Card}}
    {{lookup (lookup ../Strang strangNo) 'color'}}
{{/each}}

不需要助手。

我创建了一个fiddle供您参考。