Я проходил процесс создания директивы. Пройдя через несколько взлетов и падений, я создал директиву ( виджет ) и дорабатывал различные атрибуты, которые будет принимать директива.
Я использовал различные доступные параметры, такие как атрибут, привязка, оценка, выражение и т. д.
Я полагал, что если вы хотите создать универсальный компонент, вы никогда не сможете сказать, как люди будут передавать значения компоненту. .
Вот иллюстрация...
Вы создаете новый компонент элемента.. скажем
<hello name="__ARGUMENT__"></hello>
Атрибут name для приветствия является единственной переменной в нем. Если вы выложите его на всеобщее обозрение... это возможные сценарии, в которых люди могут использовать этот компонент.
случай 1 :
<hello name="angular"></hello>
случай 2 :
<hello name="{{name}}"></hello>
случай 3 :
<div ng-repeat="name in names">
<hello name="name"></hello>
</div>
Теперь.. для разных сценариев..Я пришел к пониманию различных вариантов. Я не могу придумать ни одного сценария, в котором вам когда-либо понадобится «атрибут», поскольку это простая прямая замена значений из компонента в шаблон..
В вашем определении директивы, если вы определили имя как «вычислить» вместо 'attribute'
if attribute :
<hello name="angular"></hello>
if Assessment :
<hello name="'angular'"></hello>
обратите внимание на дополнительные одинарные кавычки..
Итак, насколько я могу судить, оценка охватывает то, что делает атрибут. лучший выбор, чем просто атрибут, поскольку он охватывает больше сценариев!
Если кто-то может объяснить, почему вообще существует атрибут? Больше вариантов = больше путаницы.. :)