Angular 2 - 将变量传递给ng-template

时间:2017-05-02 18:15:04

标签: angular angular-template

我有这个ng-template。一切都适用于循环。唯一的问题是我无法通过"标题"变量与" let-title"。

我的语法出了什么问题?我需要星号* ngIf吗?

" selectPerm(标题)"不起作用。它始终未定义。

<ng-template ngFor
             let-perm
             let-title="permission.title"
             [ngForOf]="permission.data.permissions"
             *ngIf="editForm.controls.permissions.controls[permission.data.id].value == '0'">
             <tr>
                <td></td>
                <td>{{perm.name}}</td>
                <td><label>Allow: <input type="radio" value="1" formControlName="{{perm.id}}" (click)="selectPerm(title)"></label></td>
                <td><label>Deny: <input type="radio" value="-1" formControlName="{{perm.id}}" (click)="selectPerm(title)"></label></td>
                <td></td>
             </tr>
</ng-template>

1 个答案:

答案 0 :(得分:1)

尝试将* ngIf放在“tr”标记上,然后引用perm.title而不是模板输入变量:

<ng-template ngFor
         let-perm
         [ngForOf]="permission.data.permissions">
         <tr *ngIf="editForm.controls.permissions.controls[permission.data.id].value == '0'">
            <td></td>
            <td>{{perm.name}}</td>
            <td><label>Allow: <input type="radio" value="1" formControlName="{{perm.id}}" (click)="selectPerm(perm.title)"></label></td>
            <td><label>Deny: <input type="radio" value="-1" formControlName="{{perm.id}}" (click)="selectPerm(perm.title)"></label></td>
            <td></td>
         </tr>
</ng-template>