Кутова 1,3+
У версії 1.3 Angular підтримує це, використовуючи такий синтаксис.
<div>{{::message}}</div>
Як зазначено у цій відповіді .
Кутова 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/
Деякі з вас, можливо, використовують кутовий batarang, і, як згадувалося в коментарях, якщо ви використовуєте цю директиву, елемент все ще відображається як прив'язуючий, коли це не так, я майже впевнений, що це має щось спільне з класами, прикріпленими до елемента, тому спробуйте це, це повинно спрацювати (не перевірено) . Повідомте мене в коментарях, чи це спрацювало у вас.
app.directive('bindOnce', function() {
return {
scope: true,
link: function( $scope, $element ) {
setTimeout(function() {
$scope.$destroy();
$element.removeClass('ng-binding ng-scope');
}, 0);
}
}
});
@ x0b : Якщо у вас OCD і ви хочете видалити порожній class
атрибут, зробіть це
!$element.attr('class') && $element.removeAttr('class')