Handlebars JS:使用动态键评估表达式

Handlbars JS : evaluating expression with dynamic keys

我有以下反对意见

myObject = {
     id:1234,
     name_1234:"abc"
}

使用 handlebars JS 我正在尝试使用动态键评估表达式,例如,id 是动态生成的,因此键将动态更改

因此下面的表达式

{{"myObject.name_"+myObject.id}}

应该return输出“abc”。

在车把 JS 中可以实现这样的功能吗?

您可以通过括号访问对象属性,就像您可以通过索引访问数组值一样。试试这个:

{{myObject["name_" + myObject.id]}}

Handlebars 不允许您使用 + 运算符连接模板中的字符串。您将需要创建一个 Helper 来执行此操作。一旦你有了它,你可以将它与 lookup helper using a subexpression 结合起来执行查找:

Handlebars.registerHelper('concat', function (...args) {
    return args.slice(0, -1).join('');
});

{{lookup myObject (concat "name_" myObject.id)}}

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