Хорошо, поэтому я прочитал в нескольких местах, что использование ng-bind лучше для производительности. Но, глядя на эти jsperfs, я немного смущен :)
https://jsperf.com/angular-bind-vs-brackets
http://jsperf.com/ng-bind-vs-brackets/14
Итак, что лучше всего подходит для производительности?
{{::value}}
или
<div ng-bind="value"></div>
Вы должны использовать ng-bind
. Его директива, которая ставит наблюдателя на эту переменную, поэтому она обновляется только при изменении переменной, а {{}}
будет грязно проверять и обновлять переменную в каждом цикле дайджеста.
См. Этот ответ
Также ::
называется "bindonce" и будет устанавливать переменную только один раз и после этого не обновляться.
e: jsperf проверяет привязку переменной к html (я думаю), в то время как связанный ответ фокусируется на поведении потом. Если у вас есть 100 фигурных скобок и вы обновляете одну модель, каждый {{}}
обновляется. Хотя ng-bind
обновляется только в том случае, если сама переменная изменяется, поскольку она создает наблюдателя для этой переменной.
Когда дело доходит до одноразовой привязки, вы также должны использовать двоеточие в ng-bind.
Поэтому используйте ng-bind="::value"
для фильтра или выражений вы должны использовать скобки: ng-bind="::(value | number:2)"
лучше использовать ng-bind
. Если файлы javascript не загружены, {{}} отобразится на странице.
{{}}
используя ng-cloak
ng-bind
используется для односторонней привязки, а{{}}
- для двусторонней привязки. Для одностороннего связывания - angular не следит за изменением переменной или нет. Но для двухсторонней привязки - угловое наблюдение, будет ли эта переменная изменяться или нет, а если значение меняется, то угловое отражает newValue в Html или JS.