【发布时间】:2021-08-19 22:26:31
【问题描述】:
我有一个重定向到新页面的按钮,同时应该将数据保存到服务中。当我现在使用它时,它看起来像这样:
<button [disabled]="!isValid" (click)="saveToService()" routerLink="/link">Next</button>
现在我想知道这是否是最佳做法。感觉 html 按钮被这么多独立的功能弄得有些杂乱。显而易见的替代方法是将路由器导航移动到同时执行这两项操作的函数,例如:
<button [disabled]="!isValid" (click)="saveAndNavigate()">Next</button>
并在 ts 中:
private saveAndNavigate():void { this.service.setData(data); this.router.navigate(['/link]); }
有没有“正确”的方法来做到这一点?在 html 中执行这两个操作是否会产生一些不必要的副作用?
谢谢
【问题讨论】:
-
我认为您的后一个想法是正确的(执行对您的服务的调用以及导航路线的单个功能)。我会提出的唯一建议是在执行导航之前等待事务成功完成,这样您就可以指出可能发生的任何错误。
标签: html angular typescript