如何将结构指令与 ng-attr-* 结合使用?

时间:2021-05-14 17:03:32

标签: angular angular-directive

<ng-container *privileges="updateName; else readOnlyName">
   <input clrInput [(ngModel)]="name" name="name" required/>
</ng-container>
<ng-template #readOnlyName>
   <input clrInput [(ngModel)]="name" name="name" required readonly/>
</ng-template>

这是我当前代码的最小示例,其中具有 updateName 权限的用户能够看到可编辑的输入字段。但是正如您所看到的,代码块中的唯一区别是一个属性 readonly。 有没有办法避免为此使用两个代码块?

我听说 ng-attr-* 可能对此有所帮助,但我不确定它如何与结构指令一起使用。

1 个答案:

答案 0 :(得分:0)

如果它们相同,为什么 readonly 属性上的简单条件不合适?

<ng-container *privileges="updateName">
   <input clrInput [(ngModel)]="name" name="name" required [readonly]="some_boolean_condition"/>
</ng-container>

OR 把 ng-container 完全放下

<input *ngIf="some_condition_relate_to_privileges_updateName" clrInput [(ngModel)]="name" name="name" required [readonly]="some_boolean_condition"/>