FLYNNLABAboutMeCodingActivityStudy 2024초등수학
Angular Template Local Variable
angular

템플릿에서 복잡하게 접근해야 되는 경우 Template Local Variable 을 활용하면 가독성을 높일수 있다.

AsIs

<ng-container *ngFor="let meta of metaConfigs">
    <form-layout *ngIf="formGroup.controls[meta.key].get('value')"
                     class="meta-dataset-file-info__aim-form-layout"
                     horizontal>
        <div>{{formGroup.controls[meta.key].get('value')}}</div>
     ...                

ToBe

<ng-container *ngFor="let meta of metaConfigs">
    <form-layout *ngIf="formGroup.controls[meta.key].get('value') as metaFormControl"
                     class="meta-dataset-file-info__aim-form-layout"
                     horizontal>
        <div>{{metaFormControl}}</div>

*ngIf 에서 as 키워드를 이용하면 template local variable 을 만들 수 있다. 이걸 이용해서 template 에서 좀 더 가독성있게 사용할 수 있다.

특히 객체를 담는 Signal 을 사용할때에도 유용했다.

AsIs

  <div class="container" *ngIf="user()">
    <app-profile-ui [user]="user()"/>
  </div>

user() 는 signal 인데 undefined를 담고 있어서 타입 오류가 있었다. 아직은 템플릿 상에서 지원을 못하는거 같아서 아래처럼 template local variable을 활용해서 해결 했다.

ToBe

  <div class="container" *ngIf="user() as localUser">
    <app-profile-ui [user]="localUser"/>
  </div>