基於dandavis的評論,你可以寫一個自定義的指令,這個:
app.directive("forceReadonly", function() {
return {
link: function(scope, element, attr) {
element.on("focus", function(){
if(this.readonly) {
this.blur();
}
});
scope.$on("$destroy", function() {
element.off("focus");
})
}
};
});
用法:
<textarea class="form-control" placeholder="Risk Event Type Description" id="riskEventTypeDesc" ng-readonly="isReadonly" force-readonly>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</textarea>
每當textarea
獲得焦點指令檢查textarea
是否只讀。如果它是隻讀的,它立即消除焦點,所以你不會看到閃爍的插入符號。
這樣滾動也能發揮作用。
例撥弄here。
雖然有一個缺點,但這可能會使您無法使用:這會消除在textarea
中選擇文本的能力,因此不會從textarea
複製。
使用'ng-disabled' – wero
如果你使用'ng-readonly',你甚至不應該點擊'textarea',在這種情況下甚至不可能看到閃爍的光標。 – APAD1
及其在IE瀏覽器發生和如果我使用納克 - 禁用它將限制用戶滾動文本 – aftab