【问题标题】:how to bind data to a button text value in Angular8 material如何将数据绑定到Angular8材料中的按钮文本值
【发布时间】:2020-05-05 09:27:31
【问题描述】:

我需要帮助将数据绑定到按钮文本,请提供任何帮助

  ngOnInit() {
   this.summaryService.getSummaryAll()
      .pipe(
      take(1)
      ).subscribe(data => this.summary = data);
}

HTML

<button mat-flat-button  class="rectangle">
    <div class="external">{{ summary.tools }} </div>
</button>

谢谢

【问题讨论】:

  • 因为它是异步的,你需要像这样使用它:summary?.tools
  • 什么都没有显示,当使用 summay.tools 我有一个错误摘要未定义
  • @rezion 在subscribe() 方法中console.log(this.summary) 的结果是什么?
  • 我有数据我只想知道如何将其绑定到按钮文本

标签: angular button binding angular-material subscription


【解决方案1】:

Eldar 上面的评论是关键...您可以模拟 API 调用的行为,延迟来自 promise、observable 或您的 API...

相关component.ts

export class ButtonOverviewExample {
  summaryPromise = {tools:''};
  summaryObservable = {tools:''};

  constructor(private srv:AppService){
    srv.getButtonTextViaPromise().then(
      (dataa:string)=>{ console.log(dataa); this.summaryPromise = { tools: dataa}; }
    )

    srv.getButtonTextViaObservable().subscribe(
      (dataa:string)=>{ console.log(dataa); this.summaryObservable = { tools: dataa}; }
    )
  }

}

相关service.ts

  getButtonTextViaPromise() {
    return new Promise((resolve, reject) => {
      setTimeout(() => {
        resolve("text from promise");
      }, 5000);
    });
  }

  getButtonTextViaObservable() {
      return of("text from observable").delay(5000);
  }

相关html

<button mat-button>{{ summaryPromise?.tools }}</button>
<button mat-button>{{ summaryObservable?.tools }}</button>

完成working stackblitz

【讨论】:

    猜你喜欢
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-04
    • 2020-03-08
    • 2016-05-04
    相关资源
    最近更新 更多