2017-10-25 8 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

짧고 간단한 : 도움을 비벡 트레이 도시에

<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> didnt 작업을 사용하면 테이블에 아무 것도 표시되지 않으므로 <tbody>에 을 추가 한 다음 <tr *ngIf="isAdmin && (user.TestRole.Description === 'Admin' || user.TestRole.Description === 'Senior Investigators') || user.TestRole.Description === 'Senior Investigators'">을 추가했습니다. 관리자가 로그인하지 않은 경우이 모든 사용자를로드하고 관리자가 아닌 사용자가 로그인 한 경우 관리자가 아닌 사용자를로드합니다. in.