NG-SRC = '{{item.img [0]}}'爲什麼當你在角度中使用ng-src時,你必須使用表達式?
當...
其他指令只取像納克放映= 'item.val'
字符串我不確定爲什麼表達式在某些情況下被使用以及爲什麼字符串在其他情況下?
NG-SRC = '{{item.img [0]}}'爲什麼當你在角度中使用ng-src時,你必須使用表達式?
當...
其他指令只取像納克放映= 'item.val'
字符串我不確定爲什麼表達式在某些情況下被使用以及爲什麼字符串在其他情況下?
這只是它實施的方式。
的選擇使用插值表達的原因是,它可以讓你做到這一點:
ng-src="http://my.generic.url/some/resource/{{IDdefinedInScope}}"
如果沒有使用插值,你就必須做任何這樣的:
ng-src="'http://my.generic.url/some/resource/' + IDdefinedInScope"
,或者:
ng-src="someResourceUrl(IDdefinedInScope)"
$scope.someResourceUrl = function (id) {
return 'http://my.generic.url/some/resource/' + id;
};
(...這是更詳細和clamsy和更少的聲明。)
五言中,是什麼讓這裏這可能是需要將輸出已經一個字符串(而不是對象)。
我想知道這個我自己。在源頭把我們帶回到角度處於嬰兒期的時候。這是他們的第一個0.9版之前的大約100次提交:9627c4b50e,問題#11
事實證明,沒有擴展提交消息,也沒有任何問題消息。代碼位於/src/markups.js的底部,源代碼中的評論很少,絕對不是任何類型的文檔。所以下面只是我的猜想,可能不準確。它看起來在angular的早期開始,他們定義了大約6種不同的工具:指令,過濾器,格式化器,標記,驗證器和小部件。繼續前進一些提交,我發現了這些定義:
此時使用的指令/小工具表達式,使用的標記{{interpolation}},過濾器使用了管道|插值內部以及使用純文本的格式化程序/驗證程序。 ng-href和ng-src屬於標記類別。
與現在相比(1.3),Directives,Widgets和Markups現在合併爲指令。過濾器和格式化器現在只是過濾器,而驗證器在表單元素的ngModelController中。
由於此遷移,他們必須決定如何處理標記。他們將很多布爾標記(ng-checked/multiple/readonly/selected/disabled)改爲表達式,但決定保留ng-src和ng-href作爲插值。你可以找到a discussion on google groups where Misko Hevery explains the exception。
所以它是從早期的分類派生出來的,爲了簡單性或向後兼容性的緣故而堅持。
爲了方便起見,打破一致性對用戶來說更是不便。如果在使用什麼情況下它不合邏輯,用戶將被迫查找語法。好的答案。 ty –
這裏沒有一致性打破。有幾個屬性指令採用插值表達式。您可能碰巧主要使用那些沒有的,但'ngSrc'絕對不是**「一種」:) Angular的指令與其他人的自定義指令完全相同,他們可以(也將會)使用任何形式... – gkalpak
至少它與JS中的其他任何東西都適合,有多種方式可以做任何事情! –