Angular 如何动态禁用表中的按钮?
在上表的屏幕截图中,我想在用户获得批准后禁用批准按钮(即,按钮向右滑动)。 单击按钮调用一个API,该API将更新数据库中的is_confirm字段(布尔类型),该字段用于禁用按钮。 但是按钮没有被禁用,它仍然可以滑动Angular 如何动态禁用表中的按钮?,angular,Angular,在上表的屏幕截图中,我想在用户获得批准后禁用批准按钮(即,按钮向右滑动)。 单击按钮调用一个API,该API将更新数据库中的is_confirm字段(布尔类型),该字段用于禁用按钮。 但是按钮没有被禁用,它仍然可以滑动 <tr *ngFor="let user of users"> <td>{{ user.name }}</td> <td>{{ user.userName }}</td> &l
<tr *ngFor="let user of users">
<td>{{ user.name }}</td>
<td>{{ user.userName }}</td>
<td>{{ user.occupation }}</td>
<td>{{ user.maritalStatus }}</td>
<td>{{ user.mobileNo }}</td>
<td>
<div class="row">
<div class="col-sm-4"><button class="btn"(click)="viewUserDetails(user.id)"><i class="fa fa-address-card fa-lg" aria-hidden="true"></i></button></div>
<div class="col-sm-4"><label class="switch">
<input type="checkbox" [disabled]="user.isConfirm" [checked]="user.isConfirm" (change)="approveUserById(user.id)">
<span class="slider round"></span>
</label></div>
<div class="col-sm-4"><button class="btn" (click)="lockOrUnlockUserById(user)"><i [ngClass]="user.isLock ? 'fa fa-unlock fa-lg' : 'fa fa-lock fa-lg'" aria-hidden="true"></i></button></div>
</div>
</td>
</tr>
{{user.name}
{{user.userName}
{{user.occulation}
{{user.maritalStatus}
{{user.mobileNo}}
Component.ts
//方法获取在onInit中调用的所有用户
viewUsersList(角色ID:string){
让cityObj={roleId:roleId,cityId:this.selectedCity}
this.httpClient.post('USER\u LIST\u API',cityObj).subscribe(
(应答数据:任何)=>{
this.users=responseData
日志(“响应数据:”,响应数据)
console.log(this.users)
},
(错误:any)=>{
console.log(错误)
这个.router.navigate(['error']);
}
)
}
//方法来批准用户
approveUserById(用户ID:string){
this.httpClient.post('APPROVE\u USER\u API',userId.).subscribe(
(应答数据:任何)=>{
if(responseData.message=='TRUE'){
//*这是我需要帮助刷新数据的地方*
console.log(“响应”,responseData)
}
}
)
尝试:尝试[disabled]=“!user.isConfirm”
```
这个组件实现了onPush
策略吗?你能发布这个组件吗?@RazRonen不,我没有使用onPush
(我是angular的新手,我不知道onPush
)我已经添加了我的组件.ts文件。请考虑解释如何以及为什么这能解决这个问题,这样它也能让其他用户受益。
Component.ts
//Method to get all the users called in onInit
viewUsersList(roleId: string) {
let cityObj = {roleId:roleId,cityId:this.selectedCity}
this.httpClient.post('USER_LIST_API', cityObj).subscribe(
(responseData: any) => {
this.users = <ViewUser[]>responseData
console.log("Response Data: ",responseData)
console.log(this.users)
},
(error: any) => {
console.log(error)
this.router.navigate(['error']);
}
)
}
//Method to approve a user
approveUserById(userId: string) {
this.httpClient.post('APPROVE_USER_API', userId).subscribe(
(responseData: any) => {
if (responseData.message === 'TRUE') {
//*This is the place I need help to refresh the data *
console.log("Response ",responseData)
}
}
)
<input type="checkbox" [disabled]="!user.isConfirm" [checked]="user.isConfirm" (change)="approveUserById(user.id)">
<span class="slider round"></span>
```