用字符串中的静态值替换角度表达式

时间:2016-05-25 09:27:34

标签: javascript angularjs

在角度控制器中,我有:

var stringTemplate = "{{data.a}} - {{data.b}}";
var data = {a: "example1", b: "example2"};

有没有办法用stringTemplate中的静态值替换data中的表达式。所以在这种情况下,结果应该是"example1 - example2"

我需要将其存储在数据库中,以后在data不可用时使用。

datastringTemplate中的值会发生变化。

1 个答案:

答案 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);