Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
80 views
in Technique[技术] by (71.8m points)

javascript - Handlbars JS : evaluating expression with dynamic keys

I have object as follows

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

using the handlebars JS i am trying to evaluate the expression with dynamic keys in place, for example the id is generated dynamically so the keys will change dynamically

therefore the expression below

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

should return the output "abc".

Is something like this achievable in handlebars JS ?

question from:https://stackoverflow.com/questions/65932471/handlbars-js-evaluating-expression-with-dynamic-keys

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Handlebars will not allow you to concatenate strings within a template using the + operator. You will need to create a Helper to do that. Once you have that, you can combine it with the lookup helper using a subexpression to perform the lookup:

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

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

I have created a fiddle for your reference.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...