我正在为我的公司构建一个非常大的应用程序。我使用SQL Server作为数据库,C# .Net核心作为服务器,Angular 8作为前端。
我在这个应用程序中有几十个页面。有些比其他的更复杂。我正在建立这个目前基于他们的现有设计,这是在Filemaker(苹果产品)完成。当前的应用程序有大量类似于对话框的弹出模式,当按钮被按下时会显示各种信息。一个页面上有30个这样的按钮。在这些模态中,可以是来自多个表的少量数据或一长页信息。
我正在尝试重新创建他们现有的系统(以最大限度地减少学习新系统),但使用更好的软件。然而,感觉整个情态用法真的变得失控了。此外,更新信息变得非常复杂,因为我有需要对其进行完整CRUD操作的表的模态。我原本想在一个模式中做一个模式,但这变得越来越荒谬了。除了让这些表在不重新加载页面的情况下显示更新后的数据之外,这简直让我头疼。我可以让几种技术工作一次,然后有一些东西阻止他们第二次工作。
我一直在使用Mat-Dialog打开一个模式,并在一个组件中加载,以模仿他们目前拥有的东西,但我觉得我做错了。也许我应该直接转到组件,更新数据,然后返回到第一页?
我想归根结底是,我应该以这种方式使用Mat-Dialog吗?什么时候才是真正使用它的合适时机?有没有更好的方法来处理大量更新或新数据?
如果这一切没有任何意义,请让我知道。
我们非常感谢您的任何意见。
提前谢谢。
发布于 2020-05-15 02:37:22
您可以为mat-dialog创建一个单独的可重用组件。你需要在调用每个弹出窗口时传递一些细节,同时你还可以传递一些有条件的东西。如果你想在弹出窗口中显示表格,你可以传递table:true,如果不是,你可以传递table:false。类似地,您可以使用单个弹出组件来做许多事情。
openDialog(): void {
const dialogRef = this.dialog.open(DialogOverviewExampleDialog, {
width: '250px',
data: {name: this.name, table: true}
});
dialogRef.afterClosed().subscribe(result => {
console.log('The dialog was closed');
this.animal = result;
});
}
}
<li>
<button mat-raised-button (click)="openDialog()">open dialog</button>
</li>
<li *ngIf="table">
You chose: <i>{{your data}}</i>
</li>我已经在我的应用程序中使用了类似的方法来处理几十个弹出窗口。
https://stackoverflow.com/questions/61804154
复制相似问题