[英]How to disable the div tag in angular 2
我试图在该操作成功回调后禁用 div 标签。
请看我的离子含量
<ion-content padding class="forgot-password">
<div [ngClass]="{active: isOn,disabled: isDisabled}">
<ion-item>
<ion-label floating>Email/Mobile</ion-label>
<ion-input type="text" [(ngModel)]="loginId"></ion-input>
</ion-item> <br><br>
<button class="float-right" (click)="generateOTP(!isOn);">Send OTP</button><br><br><br>
</div>
<br>
<div *ngIf="showRePasswd">
<ion-item>
<ion-label floating>Enter OTP</ion-label>
<ion-input type="text" [(ngModel)]="passwd"></ion-input>
</ion-item> <br><br>
<button class="float-right" (click)="resetPassword();">Send Password</button>
</div>
</ion-content>
这是 my.ts 文件
export class ForgotPasswordPage {
public loginId = "";
public passwd = "";
public showRePasswd = false;
isDisabled = false;
isOn = false;
constructor(private navCtrl: NavController, private logger: Logger, private user: Users) {
}
generateOTP(newstate) {
this.logger.info("invoking generateOTP FN");
var _this = this;
this.user.generateOTP(this.loginId, function(result,data){
if(result == '1') {
alert(data);
_this.showRePasswd = !_this.showRePasswd;
_this.isDisabled = true;
_this.isOn = newstate;
}
else {
//this.showRePasswd = this.showRePasswd;
alert(data);
}
})
}
resetPassword() {
this.logger.info("invoking resetPassword FN");
var _this = this;
this.user.resetPassword(this.passwd, function(result,data) {
if(result == '1') {
alert(data);
_this.navCtrl.push(LoginPage);
}
else {
alert(data);
}
})
}
}
我尝试
[ngClass]
但我无法在成功回调后禁用我的 div 标签。
我也尝试使用[disabled]
但不工作
这是禁用 div 标签的演示,但在我的情况下不起作用
我的要求是在成功回调后禁用我的输入字段和按钮
您可以添加属性,如
<div [attr.disabled]="isDisabled ? true : null">
但<div>
不支持disabled
属性。
也许这就是你想要的
<div (click)="isDisabled ? $event.stopPropagation() : myClickHandler($event); isDisabled ? false : null"
[class.isDisabled]="isDisabled"></div>
使用一些自定义 CSS 使.isDiabled
看起来被禁用。
最好创建一个方法将代码放在那里而不是内联。
您可以使用 CSS 属性pointer-events: none; 在您的标签 div 中:
<ion-content padding class="forgot-password">
<div style="pointer-events: none;">
...
</div>
</ion-content>
这在我的 Angular 8 项目中使用:首先设置为如下所示的 HTML 文件。 设置为 Div 标签 ngClass=>
<div class="col-md-3" [ngClass]="{disabledNoOfCasesDiv: !isActiveNOofCasesNo}>
<label class="control-label mb-2">No. of Cases Receive</label>
<input type="number" class="form-control" [(ngModel)]="CollectJob.NoOfCases"
placeholder="No. Cases Receive" name="NoCasesReceive">
</div>
然后下一步编写 CSS 以禁用事件:
.disabledNoOfCasesDiv{ pointer-events: none; opacity: 2.0;}
然后最后:
声明变量并设置为布尔值
isActiveNOofCasesNo: boolean;
然后接下来只需在您想要启用 div 标签或禁用 div 标签的任何地方传递 true/false 值,div 将自动启用或禁用。
this.isActiveNOofCasesNo = true;
this.isActiveNOofCasesNo = false;
谢谢.....快乐学习!...:) angular html css ionic typescript
您可以使用 Angular 指令轻松启用/禁用 DOM 元素:-
创建一个简单的指令 - DisableDirective
import { AfterViewInit, Directive, ElementRef, Input, OnChanges, Renderer2 } from '@angular/core';
const DISABLED = 'disabled';
const APP_DISABLED = 'app-disabled';
const TAB_INDEX = 'tabindex';
const TAG_ANCHOR = 'a';
@Directive({
selector: '[appDisable]'
})
export class DisableDirective implements OnChanges, AfterViewInit {
@Input() appDisable = true;
constructor(private eleRef: ElementRef, private renderer: Renderer2) { }
ngOnChanges() {
this.disableElement(this.eleRef.nativeElement);
}
ngAfterViewInit() {
this.disableElement(this.eleRef.nativeElement);
}
private disableElement(element: any) {
if (this.appDisable) {
if (!element.hasAttribute(DISABLED)) {
this.renderer.setAttribute(element, APP_DISABLED, '');
this.renderer.setAttribute(element, DISABLED, 'true');
// disabling anchor tab keyboard event
if (element.tagName.toLowerCase() === TAG_ANCHOR) {
this.renderer.setAttribute(element, TAB_INDEX, '-1');
}
}
} else {
if (element.hasAttribute(APP_DISABLED)) {
if (element.getAttribute('disabled') !== '') {
element.removeAttribute(DISABLED);
}
element.removeAttribute(APP_DISABLED);
if (element.tagName.toLowerCase() === TAG_ANCHOR) {
element.removeAttribute(TAB_INDEX);
}
}
}
if (element.children) {
for (let ele of element.children) {
this.disableElement(ele);
}
}
}
}
现在将此指令与您的组件 div 一起使用:-
<div [appDisable]="true">
</div>
注意 - 不要忘记在您的 AppModule 中注册指令。
请参阅POST以获取详细说明。
在 html
<div[appViewDisable]="disable_condition">
in.ts
disable_condition = True 或 False
True 将禁用内容初始化。
Div 元素不能像表单控件一样被禁用。 您可以改为禁用 div 中的表单控件。
提供的示例具有自定义类“禁用”
styles: [`
.button {
width: 120px;
border: medium solid black;
}
.active {
background-color: red;
}
.disabled {
color: gray;
border: medium solid gray;
}
`]
HTML 文件
div [ngClass]="condition"
ts文件
this.condition = 'mydisable';
css文件
.mydisable {
pointer-events: none;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.