如何在 Angular 中显示微调器组件时使 div transparent/disabled 2
How to make the div transparent/disabled when the spinner component is shown in Angular 2
我有一个只有几个字段和一个提交按钮的表单。提交按钮仅在表单有效时启用,并且当用户单击提交按钮时它调用 api 并且在此期间我能够显示微调器组件。以下是我的代码:
HTML:
<div class="col-md-10 col-lg-5" id="mainDiv">
<form [formGroup]="userRegisForm">
<fieldset>
<div class="m-l-1">
<div class="form-group required">
<label for="name" class="col-md-3 control-label">Name:</label>
<div class="col-md-6 col-lg-7">
<input type="text" class="form-control" id="name" name="Name" formControlName="name"
aria-required="true" required>
</div>
</div>
</div>
<div class="m-l-1">
<div class="form-group required">
<label for="email" class="col-md-3 control-label">email:</label>
<div class="col-md-6 col-lg-7">
<input type="text" class="form-control" id="email" name="email" formControlName="email"
aria-required="true" required>
</div>
</div>
</div>
<div class="m-l-2">
<div class="form-group">
<div class="">
<button type="submit" (click)="submit()" [disabled]="!userRegisForm.valid">Submit</button>
</div>
</div>
</div>
<my-spinner [isRunning]="isRequesting"></my-spinner>
</fieldset>
</form>
</div>
组件:
'use strict';
import {Component} from 'angular2/core';
import {SpinnerComponent} from '../spinner/spinner';
import {ApiService} from '../../services/apiService';
@Component({
selector: 'my-sample-view',
directives: [SpinnerComponent],
template: '<my-spinner [isRunning]="isRequesting"></my-spinner>',
})
export class SampleViewComponent {
public isRequesting: boolean;
public items: Array<any>;
constructor(private apiService: ApiService) {
this.submit();
}
public submit(): void {
this.isRequesting = true;
this.apiService.sampleHttpGetRequest()
.subscribe(
result => this.items = result,
() => this.stopRefreshing(),
() => this.stopRefreshing());
}
private stopRefreshing() {
this.isRequesting = false;
}
}
我按照以下 url 来实现此功能:
https://manuel-rauber.com/2016/01/05/angular-2-spinner-component/
当请求正在进行但背景未被禁用时显示微调器。发生这种情况时,我想禁用表单中的所有字段,包括提交按钮。
使用 HTML5 可以禁用使用 fieldset disabled
包含的所有输入
就这样做...
<form>
<fieldset [disabled]="booleanFormDisabled">
your inputs u want to disable
</fieldset>
</form>
或者,在表单顶部覆盖一个部分不透明的 div,这样就无法访问其元素。
您可以将所有您想要禁用的内容包装在 div 或一个部分中,并使用不透明的 class:
<section [class.<your class>]="isRequesting">
</section>
如果您只想禁用表单,我相信您也可以对表单执行此操作:
<fieldset [disabled]="isRequesting">
我有一个只有几个字段和一个提交按钮的表单。提交按钮仅在表单有效时启用,并且当用户单击提交按钮时它调用 api 并且在此期间我能够显示微调器组件。以下是我的代码:
HTML:
<div class="col-md-10 col-lg-5" id="mainDiv">
<form [formGroup]="userRegisForm">
<fieldset>
<div class="m-l-1">
<div class="form-group required">
<label for="name" class="col-md-3 control-label">Name:</label>
<div class="col-md-6 col-lg-7">
<input type="text" class="form-control" id="name" name="Name" formControlName="name"
aria-required="true" required>
</div>
</div>
</div>
<div class="m-l-1">
<div class="form-group required">
<label for="email" class="col-md-3 control-label">email:</label>
<div class="col-md-6 col-lg-7">
<input type="text" class="form-control" id="email" name="email" formControlName="email"
aria-required="true" required>
</div>
</div>
</div>
<div class="m-l-2">
<div class="form-group">
<div class="">
<button type="submit" (click)="submit()" [disabled]="!userRegisForm.valid">Submit</button>
</div>
</div>
</div>
<my-spinner [isRunning]="isRequesting"></my-spinner>
</fieldset>
</form>
</div>
组件:
'use strict';
import {Component} from 'angular2/core';
import {SpinnerComponent} from '../spinner/spinner';
import {ApiService} from '../../services/apiService';
@Component({
selector: 'my-sample-view',
directives: [SpinnerComponent],
template: '<my-spinner [isRunning]="isRequesting"></my-spinner>',
})
export class SampleViewComponent {
public isRequesting: boolean;
public items: Array<any>;
constructor(private apiService: ApiService) {
this.submit();
}
public submit(): void {
this.isRequesting = true;
this.apiService.sampleHttpGetRequest()
.subscribe(
result => this.items = result,
() => this.stopRefreshing(),
() => this.stopRefreshing());
}
private stopRefreshing() {
this.isRequesting = false;
}
}
我按照以下 url 来实现此功能:
https://manuel-rauber.com/2016/01/05/angular-2-spinner-component/
当请求正在进行但背景未被禁用时显示微调器。发生这种情况时,我想禁用表单中的所有字段,包括提交按钮。
使用 HTML5 可以禁用使用 fieldset disabled
包含的所有输入就这样做...
<form>
<fieldset [disabled]="booleanFormDisabled">
your inputs u want to disable
</fieldset>
</form>
或者,在表单顶部覆盖一个部分不透明的 div,这样就无法访问其元素。
您可以将所有您想要禁用的内容包装在 div 或一个部分中,并使用不透明的 class:
<section [class.<your class>]="isRequesting">
</section>
如果您只想禁用表单,我相信您也可以对表单执行此操作:
<fieldset [disabled]="isRequesting">