【问题标题】:Angular Code Question - Inject data into mat-dialog-actionsAngular 代码问题 - 将数据注入 mat-dialog-actions
【发布时间】:2021-06-27 18:20:09
【问题描述】:

我需要为 Angular 中的方法获取一些数据。代码如下:

我需要像下面的editNpi(data)一样将数据放入addNpi()

有没有办法做到这一点?谢谢!

<mat-dialog-content>
  <ip-data-table
    [columnData]="columnData"
    [data]="data"
    [actionTemplate]="npiActions"
  ></ip-data-table>
</mat-dialog-content>

<mat-dialog-actions>
  <ip-show-obsolete
    [disabled]="false"
    [clearCheckbox]="clearCheckbox"
    (showObsolete)="showObsolete($event)"
  >
    <button class="mr-2" mat-button (click)="addNpi()">Add</button>
    <button mat-button mat-dialog-close>Close</button>
  </ip-show-obsolete>
</mat-dialog-actions>

<ng-template #npiActions let-data="data">
  <button type="button" [disabled]="!data.active" mat-menu-item (click)="editNpi(data)">
    Edit
  </button>
  <button type="button" [disabled]="!data.active" mat-menu-item>Remove</button>
</ng-template>​

【问题讨论】:

  • (click)="addNpi(data)" 是否因某种原因不起作用?
  • 感谢您的回复,当我尝试时,数据没有进入方法。所以我认为我需要让它在 mat-dialog-actions 的范围内可用,至少我是这么认为的。你可以说我的 Angular 知识有限。
  • 好吧,我又试了一次,数据得到一个未定义的错误。我想我在 mat-dialog-actions 的某个地方需要像 let-data="data" 这样的东西。这些按钮,添加/关闭和编辑/删除,因为它们在网页上的功能而被分成不同的对话框。
  • 这段代码其实不是我写的,只是想改一下功能上的一个错误。

标签: angular inject mat-dialog


【解决方案1】:

好的,编写代码的承包商帮助了我。事实证明,我可以在很多地方引用变量“数据”。所以在 addNpi() 方法中,我们放了这样的语句:

const rowData = this.data.find(item => item.active);

这使得 rowData 变量中的“数据”可用。

然后这段代码:

常量对话框数据 = {

  transType: 'I',

  npiData: rowData,

};

dialogData 已经被创建,我们将 rowData 添加为名为 npiData 的变量。然后当新对话框出现时,我可以访问 npiData 并且一切正常。

【讨论】:

    猜你喜欢
    • 2018-12-20
    • 1970-01-01
    • 2019-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-25
    • 1970-01-01
    相关资源
    最近更新 更多