Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在微调器角度材质中显示动态文本_Javascript_Html_Angular_Angular Material_Spinner - Fatal编程技术网

Javascript 在微调器角度材质中显示动态文本

Javascript 在微调器角度材质中显示动态文本,javascript,html,angular,angular-material,spinner,Javascript,Html,Angular,Angular Material,Spinner,我有一个微调器,但我也希望微调器中有一些独立于组件的文本。例如,如果您正在执行保存操作,则微调器将显示:…saving。但例如,如果您执行搜索操作。微调器将显示:…加工等 我将此作为微调器组件: <div *ngIf="(isLoading | async)" class="overlay"> <div> <mat-progress-spinner class="spinner" [color]="color" [mode]="mode" [value

我有一个微调器,但我也希望微调器中有一些独立于组件的文本。例如,如果您正在执行保存操作,则微调器将显示:…saving。但例如,如果您执行搜索操作。微调器将显示:…加工等

我将此作为微调器组件:


<div *ngIf="(isLoading | async)" class="overlay">
  <div>
    <mat-progress-spinner class="spinner" [color]="color" [mode]="mode" [value]="value"> </mat-progress-spinner>
    <div style="position:relative; top: -60px; left: 30px;">{{message}}</div>
  </div>
</div>

您可以将文本值作为
@Input
传递给组件,并按如下方式使用组件

我相信你不能看到它,因为css的问题。尝试使文本
位置:绝对

<div *ngIf="(isLoading | async)" class="overlay">
  <div>
    <mat-progress-spinner class="spinner" [color]="color" [mode]="mode" [value]="value"> </mat-progress-spinner>
    <div style="position:absolute; top: -60px; left: 30px;">{{message}}</div>
  </div>
</div>

{{message}}
要进一步调试,请创建stackblitz

微调器组件

从'@angular/core'导入{Component,Input,OnInit};
导出类装入器组件{
颜色='primary';
模式='不确定';
数值=50;
@输入()
message='Hello there';//默认文本将为Hello there,但如果您按上述方式传递任何内容,则它将被替换。
isLoading:Subject=this.loaderService.loaderState;
构造函数(私有loaderService:loaderService){}
}

您可以将文本值作为
@Input
传递给您的组件,并使用组件,如下所示

我相信你不能看到它,因为css的问题。尝试使文本
位置:绝对

<div *ngIf="(isLoading | async)" class="overlay">
  <div>
    <mat-progress-spinner class="spinner" [color]="color" [mode]="mode" [value]="value"> </mat-progress-spinner>
    <div style="position:absolute; top: -60px; left: 30px;">{{message}}</div>
  </div>
</div>

{{message}}
要进一步调试,请创建stackblitz

微调器组件

从'@angular/core'导入{Component,Input,OnInit};
导出类装入器组件{
颜色='primary';
模式='不确定';
数值=50;
@输入()
message='Hello there';//默认文本将为Hello there,但如果您按上述方式传递任何内容,则它将被替换。
isLoading:Subject=this.loaderService.loaderState;
构造函数(私有loaderService:loaderService){}
}

尝试将html文件中的样式位置更改为相对,应该可以:

HTML文件

    <div *ngIf="(isLoading | async)" class="overlay">
      <div>
        <mat-progress-spinner class="spinner" [color]="color" [mode]="mode" [value]="value"> </mat-progress-spinner>
        <div style="position:relative; top: -60px; left: 30px;">{{message}}
</div>
      </div>
    </div>
export class ProgressSpinnerOverviewExample {
   color = 'primary';
  mode = 'indeterminate';
  value = 50;
  @Input()
  message = 'Hello';
  isLoading = true;
  constructor() {}
}

尝试将html文件中的样式位置更改为“相对”,应该可以:

HTML文件

    <div *ngIf="(isLoading | async)" class="overlay">
      <div>
        <mat-progress-spinner class="spinner" [color]="color" [mode]="mode" [value]="value"> </mat-progress-spinner>
        <div style="position:relative; top: -60px; left: 30px;">{{message}}
</div>
      </div>
    </div>
export class ProgressSpinnerOverviewExample {
   color = 'primary';
  mode = 'indeterminate';
  value = 50;
  @Input()
  message = 'Hello';
  isLoading = true;
  constructor() {}
}

你可以在这里找到工作演示

您必须使用
行为主题
服务

您的app.component.html是

<mat-toolbar color="primary">Spinner Demo</mat-toolbar>

<div style="margin:1em">  
    <button style="margin:1rem" mat-raised-button color="primary" (click)="spinner('search')">Search</button>
    <button mat-raised-button color="primary" (click)="spinner('Send')">Send</button>
    <button style="margin:1rem" mat-raised-button color="primary" (click)="spinner('Save')">Save</button>
</div>
     <app-search-output ></app-search-output>
您可以像这样使用
行为主体
的服务

export class SearchService {
     searchData$: BehaviorSubject<object[]> = new BehaviorSubject<object[]>([{}]);
     constructor() { }
     sendData(term){
         this.searchData$.next(term)
     }
     getData(){
         return this.searchData$.asObservable();
     }
}

你可以在这里找到工作演示

您必须使用
行为主题
服务

您的app.component.html是

<mat-toolbar color="primary">Spinner Demo</mat-toolbar>

<div style="margin:1em">  
    <button style="margin:1rem" mat-raised-button color="primary" (click)="spinner('search')">Search</button>
    <button mat-raised-button color="primary" (click)="spinner('Send')">Send</button>
    <button style="margin:1rem" mat-raised-button color="primary" (click)="spinner('Save')">Save</button>
</div>
     <app-search-output ></app-search-output>
您可以像这样使用
行为主体
的服务

export class SearchService {
     searchData$: BehaviorSubject<object[]> = new BehaviorSubject<object[]>([{}]);
     constructor() { }
     sendData(term){
         this.searchData$.next(term)
     }
     getData(){
         return this.searchData$.asObservable();
     }
}

“因此,我看到了微调器,但没有看到消息”如果您无法在那里看到hello,因为这是组件中的message属性。ts那么您应该首先关注div样式。“因此,我看到了微调器,但没有看到消息”如果您无法在那里看到hello,因为它是component.ts中的message属性,那么您应该首先关注div样式。谢谢您的评论。但我仍然只看到旋转器,没有文本。我制作了属性:process='processing';在模板中:请创建一个stackblitz以进一步调试,或者您可以打开开发工具并检查它。感谢您的评论。但我仍然只看到旋转器,没有文本。我制作了属性:process='processing';在模板中:请创建一个stackblitz来进一步调试,或者您可以打开开发工具并检查它。
export class AppComponent  {
  constructor( private serachService: SearchService){
  }
  spinner(term){
    this.serachService.sendData(term);
  }
  ngOnInit(){
  } 
}
export class SearchService {
     searchData$: BehaviorSubject<object[]> = new BehaviorSubject<object[]>([{}]);
     constructor() { }
     sendData(term){
         this.searchData$.next(term)
     }
     getData(){
         return this.searchData$.asObservable();
     }
}
 <div style="margin:2em auto; padding:1rem; box-shadow: 1px 2px 7px red; width:50vw">
     <span style="margin:1em; padding:1rem">{{bookData$ |async |json}}</span>
     <mat-spinner style="margin:1em" color="warn" ></mat-spinner>
 </div>
export class SearchOutputComponent implements OnInit {
   bookData$;
   constructor(private searchService: SearchService) { }
   ngOnInit() {
        this.bookData$ = this.searchService.getData();
   }
}