SjV*_*nyk 5 typescript angular-directive angular
我正在尝试为我的应用程序创建一个自定义 Spinner 组件,所以我创建了
spinner.component.ts
export class SpinnerComponent implements AfterViewInit {
@ViewChild("spinner") spinner: ElementRef;
constructor() { }
ngAfterViewInit(): void {
this.spinner.nativeElement.style.display = "none";
}
public show = (): void => { this.spinner.nativeElement.style.display = "block"; };
public hide = (): void => { this.spinner.nativeElement.style.display = "none"; };
}
Run Code Online (Sandbox Code Playgroud)
spinner.component.ts
<img #spinner src="assets/images/dotSpinner.gif" class="loading"/>
Run Code Online (Sandbox Code Playgroud)
我试图在我的其他组件中控制这个微调器,比如
样本.component.ts
import { SpinnerComponent } from "../spinner/spinner.component";
export class SimpleComponent {
private spinner: SpinnerComponent = new SpinnerComponent();
constructor() {}
actionHandler = (data: any): void => {
this.spinner.show();
this.clientActionService.subscribe(
data => {
this.spinner.hide();
this.clientAction = data;
},
err => {
this.spinner.hide();
}
);
}
}
Run Code Online (Sandbox Code Playgroud)
但我收到错误 ERROR TypeError: Cannot read property 'nativeElement' of undefined at SpinnerComponent.show
如果你想要解决方法
<img
[ngStyle]="{'display': displayVal}"
src="assets/images/dotSpinner.gif"
class="loading"/>
Run Code Online (Sandbox Code Playgroud)
打字稿代码
display = "none";
public show = (): void => { this.displayVal = "block"; };
public hide = (): void => { this.displayVal = "none"; };
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6107 次 |
| 最近记录: |