Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何动态禁用表中的按钮?_Angular - Fatal编程技术网

Angular 如何动态禁用表中的按钮?

Angular 如何动态禁用表中的按钮?,angular,Angular,在上表的屏幕截图中,我想在用户获得批准后禁用批准按钮(即,按钮向右滑动)。 单击按钮调用一个API,该API将更新数据库中的is_confirm字段(布尔类型),该字段用于禁用按钮。 但是按钮没有被禁用,它仍然可以滑动 <tr *ngFor="let user of users"> <td>{{ user.name }}</td> <td>{{ user.userName }}</td> &l

在上表的屏幕截图中,我想在用户获得批准后禁用批准按钮(即,按钮向右滑动)。 单击按钮调用一个API,该API将更新数据库中的is_confirm字段(布尔类型),该字段用于禁用按钮。 但是按钮没有被禁用,它仍然可以滑动

<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>
```