在角度控制器中,我有:
var stringTemplate = "{{data.a}} - {{data.b}}";
var data = {a: "example1", b: "example2"};
有没有办法用stringTemplate
中的静态值替换data
中的表达式。所以在这种情况下,结果应该是"example1 - example2"
。
我需要将其存储在数据库中,以后在data
不可用时使用。
data
和stringTemplate
中的值会发生变化。
答案 0 :(得分:1)
您可以使用ES6中引入的Template Literals语法。
var data = {
a: "example1",
b: "example2"
};
var stringTemplate = `${data.a} - ${data.b}`;
console.log(stringTemplate);

ES5:使用正则表达式
var data = {
a: "example1",
b: "example2"
};
var stringTemplate = "{{data.a}} - {{data.b}}";
stringTemplate = stringTemplate.replace(/\{{(.*?)}}/g, function($0, $1) {
return data[$1.split('.')[1]] || $0;
});
console.log(stringTemplate);