2016-11-04 75 views
5

在ES6,有模板字符串的特點,那就是,我們可以形成/ Concat的字符串像這樣(反引號)

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

及其在角2組件模板,我們有插值的雙花括號,我們可以用它來從一個變量插入值。

@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; 
} 

問:是否有任何理由選擇其中之一?

回答

9

他們是不同的東西:

${}被用作一個模板字符串佔位符,因爲你已經知道了。這些模板字符串與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

祝你好運!

4

角表達{{ }}創建一個由angular管理的綁定,其中angular會自動監視屬性的更改,並且可以在運行時更改屬性值,而ES6 Template方法會解析該值一次,在第一次渲染。

相關問題