角度 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>
Demo: 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')