เชิงมุม 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/
บางท่านอาจใช้ 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 : หากคุณมี OCD และต้องการลบclass
แอตทริบิวต์ว่างให้ทำเช่นนี้
!$element.attr('class') && $element.removeAttr('class')