2016-04-05 31 views
0

我在招聘面試中看到了這個問題,我不知道答案。任何人都可以幫忙嗎?AngularJS兩個指令做同樣的事情(改變顏色),哪一個改變顏色?

問:

假設AngularJS,與設定的應用是什麼顏色的文本顏色

<div blue-if="true" orange-if="true"> 
Color 
</div> 

簡單的指令?爲什麼?什麼是更好的方法來做到這一點?

+3

取決於指令'優先'的首選項,或者如果沒有提及'優先'選項,那麼將會應用'orange'顏色。 –

+0

http://codepen.io/comakai/pen/jbZJeJ – coma

回答

3

指令priority有一個選項,用於確定相對於同一元素或嵌套時的其他指令應用指令的順序。該選項是數字的,如果未指定,則默認爲0,較高的數字給予較高的優先級。

檢查priority under $compile in the Angular docs。另外一篇很好的博客文章here進一步詳細。

如果沒有指定的指令priority指定它們應用於字母的順序。因此,在這種情況下,將應用藍色和橙色,將文本保留爲橙色。

請注意,Angular docs(在上面的$ compile部分下)聲明具有未定義優先級的指令的順序並未實際設置,我剛剛注意到在實踐中 - 和其他人一樣 - 它似乎是按字母順序排列的。