Angular 1.3+
No 1.3, o Angular oferece suporte para isso usando a seguinte sintaxe.
<div>{{::message}}</div>
Conforme mencionado nesta resposta .
Angular 1.2 e abaixo
Isso é simples e não precisa de um plugin. Veja isso.
Esta pequena diretriz realizará facilmente o que você está tentando alcançar
app.directive('bindOnce', function() {
return {
scope: true,
link: function( $scope ) {
setTimeout(function() {
$scope.$destroy();
}, 0);
}
}
});
Você pode ligar uma vez assim
<div bind-once>I bind once - {{message}}</div>
Você pode ligar normalmente
<div ng-bind="message" bind-once></div>
Demo: http://jsfiddle.net/fffnb/
Alguns de vocês podem estar usando o batarang angular e, conforme mencionado nos comentários, se você usar esta diretiva, o elemento ainda mostra como vinculativo quando não é, tenho certeza que isso tem algo a ver com as classes que estão anexadas ao elemento. tente fazer isso, deve funcionar (não testado) . Deixe-me saber nos comentários se funcionou para você.
app.directive('bindOnce', function() {
return {
scope: true,
link: function( $scope, $element ) {
setTimeout(function() {
$scope.$destroy();
$element.removeClass('ng-binding ng-scope');
}, 0);
}
}
});
@ x0b : Se você tem TOC e deseja remover o class
atributo vazio, faça isso
!$element.attr('class') && $element.removeAttr('class')