2017-10-25 6 views
1

私はデータベースからユーザーの一覧を取得し、ユーザーの一覧には管理ユーザーと非管理ユーザーが表示されます。私は、管理者がログインしている場合、管理者ユーザーを表示し、何の管理者がログインしていない場合、管理者ユーザーを表示しないようにしたい。これは私の現在のコードです:事前に管理者がログインしていない場合管理者を表示しないようにngForをフィルタできますか。

<tbody> 
       <tr *ngFor="let user of users"> 
       <td>{{user.Salutation.Description === "None" ? "-" : user.Salutation.Description}}</td> 
       <td>{{user.FirstName}}</td> 
       <td>{{user.Surname}}</td> 
       <td>{{user.Region.Description === "None" ? "-" : user.Region.Description}}</td> 
       <td>{{user.Institution === null ? "-" : user.Institution}}</td> 
       <td>{{user.PrimaryResearchField.Description === "None" ? "-" : user.PrimaryResearchField.Description}}</td> 
       <td>{{user.OrcidID === null ? "-" : user.OrcidID}}</td> 
       <td> 

        <button title="View" class="btn btn-primary" (click)="viewUser(user.UserKey)">View</button> 
        <button *ngIf="isAdmin || (isSi && userKey == user.UserKey)" title="Edit" class="btn btn-success" (click)="editUser(user.UserKey)">Edit</button> 
        <button *ngIf="isAdmin" title="Delete" class="btn btn-danger" (click)="deleteUser(user.UserKey)">Delete</button> 
       </td> 
       </tr> 
       </tbody> 

感謝。

+0

あなたは投稿を編集して、あなたの 'ts'コードを表示できますか?可能であれば 'users'の内容は? –

答えて

2

ショートとシンプル:助けのためのVivek道志へ

<ng-template *ngFor="let user of users"> 
    <tr *ngIf="isAdmin && user.isAdmin"> // check all your conditions here 
    ..... 
    </tr> 
</ng-template> 

Another way is :

1) Filter users array from component side on ngOnInit as per the logged in user

2) Use pipe function to filter the array

+0

こんにちは、あなたのスピーディーな返信に感謝します。そうすれば、管理者ユーザーには他のユーザーも表示されますか?管理者ユーザーがログインしていない場合、管理者以外のユーザーのみが表示されますか? – dd65tn

+0

あなたは '* ngIf =" isAdmin && user.isAdmin "を望みどおりに改造することができます。これはデモです。どうすればいいですか? –

+0

Vivekに感謝します。適切な変更を提案したコードを追加しました。プロンプトの拒否:テンプレート解析エラー: パーサーエラー:[isAdmin &&ユーザーの列36の割り当てをバインディングに含めることはできません。 role.Description = Admin] – dd65tn

0

感謝。私はちょっと微調整して正しい情報を表示することができました。 <ng-template> did not workを使用するとテーブルに何も表示されませんでしたので、<tbody>にを追加しました。<tr *ngIf="isAdmin && (user.TestRole.Description === 'Admin' || user.TestRole.Description === 'Senior Investigators') || user.TestRole.Description === 'Senior Investigators'">これは、管理者がログインしている場合はすべてのユーザーをロードし、管理者以外のユーザーがログインした場合は非管理ユーザー

関連する問題