Угловой 1.3+
В версии 1.3 Angular поддерживал это, используя следующий синтаксис.
<div>{{::message}}</div>
Как упоминалось в этом ответе .
Angular 1.2 и ниже
Это просто и не требует плагина. Проверь это.
Эта небольшая директива легко выполнит то, что вы пытаетесь достичь.
app.directive('bindOnce', function() {
return {
scope: true,
link: function( $scope ) {
setTimeout(function() {
$scope.$destroy();
}, 0);
}
}
});
Вы можете привязать один раз вот так
<div bind-once>I bind once - {{message}}</div>
Вы можете связать как обычно
<div ng-bind="message" bind-once></div>
Демо: http://jsfiddle.net/fffnb/
Некоторые из вас могут использовать angular batarang, и, как упоминалось в комментариях, если вы используете эту директиву, элемент по-прежнему отображается как привязка, когда это не так, я почти уверен, что это как-то связано с классами, которые прикреплены к элементу, поэтому попробуйте это, он должен работать (не проверено) . Дайте мне знать в комментариях, если это сработало для вас.
app.directive('bindOnce', function() {
return {
scope: true,
link: function( $scope, $element ) {
setTimeout(function() {
$scope.$destroy();
$element.removeClass('ng-binding ng-scope');
}, 0);
}
}
});
@ x0b : если у вас ОКР и вы хотите удалить пустой class
атрибут, сделайте это
!$element.attr('class') && $element.removeAttr('class')