2016-09-06 5 views
5

Я пытаюсь отключить тег div после успешного обратного вызова этого действия.Как отключить тег div в угловом 2

пожалуйста, смотрите мой ионным содержание

<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> 

здесь подам .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], но не работает

Вот является demo для отключения сНа тега, но в моем случае не работает

Мое требование, чтобы сделать мое поле ввода и кнопку быть отключен после успешного обратного вызова

ответ

10

Вы можете добавить атрибут как

<div [attr.disabled]="isDisabled ? true : null"> 

но <div> не поддерживает атрибут disabled.

Возможно, это то, что вы хотите

<div>(click)="isDisabled ? $event.stopPropagation() : myClickHandler($event); isDisabled ? false : null" 
    [class.isDisabled]="isDisabled"></div> 

с некоторыми пользовательских CSS, что делает .isDiabled выглядеть отключен.

Возможно, было бы лучше создать метод для ввода кода вместо встроенного.

+2

insted использования ngClass я попробовал ваш ответ, но все же я смог изменить свое поле ввода в моем теге div. –

+1

'div' не может быть отключен (ограничение HTML, а не ограничение Angular2). Вы можете установить атрибут 'disabled' и применить к нему CSS, или вы установите' disabled' для всех дочерних элементов, которые фактически могут быть отключены по отдельности. –

+0

Чтобы добавить к тому, что сказал @MohanGopi, событие (щелчок) для div, у которого есть [attr.disabled] set, также генерируется. Поэтому мы не можем отключить клики этого div. – shanti

0

Элемент Div не может быть отключен, как элементы управления формой. Вместо этого вы можете отключить элементы управления формой.

Предоставлено пример имеет пользовательский класс "отключил"

styles: [` 
    .button { 
     width: 120px; 
     border: medium solid black; 
    } 

    .active { 
     background-color: red; 
    } 

    .disabled { 
     color: gray; 
     border: medium solid gray; 
    } 
    `] 
+0

потому что я уже упоминал, что стиль не используется –

+0

Я действительно не понимаю, чего вы хотите достичь. Можете ли вы обеспечить желаемый эффект? [ngClass] = "{active: isOn, disabled: isDisabled}"> находится в вашем файле шаблона. – jmachnik

+0

@MohanGopi вы также можете создать пользовательский контейнер (директива), который отключит всех детей по требованию. – jmachnik

 Смежные вопросы

  • Нет связанных вопросов^_^