Видимость:
В то время как ваши angularjs является самонастройки, пользователь может видеть ваши помещенные скобки в HTML.Это можно обрабатывать с помощью ng-cloak
. Но для меня это обходное решение, которое мне не нужно использовать, если я использую ng-bind
.
Производительность:
{{}}
является гораздо медленнее.
ng-bind
является директивой и размещает наблюдателя на переданной переменной. Так что ng-bind
применим только тогда, когда значение прошло фактически меняет.
Кронштейны с другой стороны, будет грязный проверено и обновляется в каждый$digest
, даже если это не необходимую.
В настоящее время я создаю большое приложение для одной страницы (~ 500 привязок для каждого представления). Изменение от {{}} до строгого ng-bind
действительно спасло нас примерно на 20% за каждые scope.$digest
.
Предложение:
Если вы используете модуль перевода, такие как углового-перевод, всегда предпочитает директивы перед скобками аннотации.
{{'WELCOME'|translate}}
=><span ng-translate="WELCOME"></span>
Если вам нужна функция фильтра, лучше пойти на директивы, которые на самом деле просто использует свой собственный фильтр. Documentation for $filter service
ОБНОВЛЕНИЕ 28.11.2014 (но, возможно, от темы):
В угловых 1.3x была введена функциональность bindonce
. Поэтому вы можете связать значение выражения/атрибута один раз (будет привязано, когда! = 'Undefined').
Это полезно, если вы не ожидаете изменения привязки.
Использование: Места ::
перед вашим связыванием:
<ul>
<li ng-repeat="item in ::items">{{item}}</li>
</ul>
<a-directive name="::item">
<span data-ng-bind="::value"></span>
Пример:
ng-repeat
выводить некоторые данные в таблице, с несколькими креплениями в каждом ряд. Перевод-привязки, выходы фильтра, которые выполняются в каждом дайджесте.
[«Предпочтительно использовать' ngBind' вместо '{{expression}}', если шаблон на мгновение отображается браузером в его исходном состоянии до того, как Angular компилирует его. Поскольку ' ngBind' является атрибутом элемента, он делает привязки невидимыми для пользователя во время загрузки страницы. "] (https://docs.angularjs.org/api/ng/directive/ngBind) - но о производительности не упоминается , – Blazemonger
Не могли бы вы проверить, если мой ответ лучше –
{{}}, на мой взгляд, нецелесообразно, зритель увидит ваш тег до полной загрузки данных. Интересно, сможет ли Angular Team решить эту проблему. –