Angular2:模板字符串中$ {..}和{{...}}之间的差异

时间:2016-11-04 01:28:20

标签: angular

在ES6中,有模板字符串功能,也就是说,我们可以像这样形成/连接字符串(带反引号)



var name = 'John';
var intro = `My name is ${name}`;




在Angular 2 Component Template中,我们使用插值的双花括号,我们可以使用它来插入变量中的值。

@Component({
   selector: 'selector-test-tag',
   template: `
   <div>
     <p>My name is ${name}</p>
     <p>My name is {{name}}</p>
   </div>
   `
})
export class Test {
   name: string;
}

问题:为什么选择一个而不是另一个?

2 个答案:

答案 0 :(得分:17)

他们是不同的东西:

正如您所知,

${}用作模板字符串中的占位符。这些模板字符串与Angular的模板不同,您不应在Angular 2模板中使用${}。对于初学者来说,如果将模板移动到外部文件,它将无法工作。

{{}}是Angular的插值语法,它是您想要在Angular 2模板中使用的内容。您可以在组件类中定义属性或方法,并在组件的模板中使用{{}}来插入该属性的值或调用该方法。您还可以使用表达式({{a + b / 2}})和管道({{title | uppercase}})。

一些资源:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals

https://angular.io/docs/ts/latest/guide/template-syntax.html#!#interpolation

祝你好运!

答案 1 :(得分:5)

Angular表达式{{ }}创建一个由angular管理的绑定,其中angular自动监视属性的更改,并可以在运行时更改属性的值,而ES6模板方法在第一次渲染时解析一次值。