2017-07-24 41 views
0

我想知道這兩行之間的區別。爲什麼在Angular 4中使用撇號變量

<p [myHighlight]="'yellow'">Highlighted in yellow</p> 
<p myHighlight="orange">Highlighted in orange</p> 

myHighlight是自定義指令,其中的所有標籤都將被設置爲自定義顏色。 謝謝。

回答

1

閱讀this page on the angular docs它會告訴你有關模板語法的所有信息。

但是,最上面一行將被評估爲一個表達式,下面一行作爲常量進行評估。

從文檔引用。

括號告訴Angular評估模板表達式。如果 省略括號,Angular會將該字符串視爲常量,並且 會使用該字符串初始化目標屬性。它不評估 的字符串!

希望有所幫助。

2

[] in [myHighlight]="'yellow'"表示="..."中的部分是表達式。沒有'' Angular希望從名稱爲yellow的標識符中讀取值。如果你想要的是字面值,而不是引用,你需要'',這與你在TypeScript中需要的一樣。

不使用'' Angular將值解釋爲字符串常量,就像通常使用純HTML + JS中的屬性值完成的那樣。