Winkel 1,3+
In 1.3 hat Angular dies mithilfe der folgenden Syntax unterstützt.
<div>{{::message}}</div>
Wie in dieser Antwort erwähnt .
Winkel 1.2 und darunter
Dies ist einfach und benötigt kein Plugin. Überprüfen Sie dies heraus.
Diese kleine Richtlinie wird leicht das erreichen, was Sie erreichen wollen
app.directive('bindOnce', function() {
return {
scope: true,
link: function( $scope ) {
setTimeout(function() {
$scope.$destroy();
}, 0);
}
}
});
Sie können einmal so binden
<div bind-once>I bind once - {{message}}</div>
Sie können wie gewohnt binden
<div ng-bind="message" bind-once></div>
Demo: http://jsfiddle.net/fffnb/
Einige von Ihnen verwenden möglicherweise eckigen Batarang, und wie in den Kommentaren erwähnt, wird das Element, wenn Sie diese Direktive verwenden, immer noch als verbindlich angezeigt, wenn dies nicht der Fall ist. Ich bin mir ziemlich sicher, dass dies etwas mit den Klassen zu tun hat, die an das Element angehängt sind Versuchen Sie dies, es sollte funktionieren (nicht getestet) . Lassen Sie mich in den Kommentaren wissen, ob es für Sie funktioniert hat.
app.directive('bindOnce', function() {
return {
scope: true,
link: function( $scope, $element ) {
setTimeout(function() {
$scope.$destroy();
$element.removeClass('ng-binding ng-scope');
}, 0);
}
}
});
@ x0b : Wenn Sie eine Zwangsstörung haben und das leere class
Attribut entfernen möchten, tun Sie dies
!$element.attr('class') && $element.removeAttr('class')