최신 정보
우리는 단지 지시어를 만들고 *ngIf
호출 할 수 있습니다*ngVar
ng-var.directive.ts
@Directive({
selector: '[ngVar]',
})
export class VarDirective {
@Input()
set ngVar(context: any) {
this.context.$implicit = this.context.ngVar = context;
this.updateView();
}
context: any = {};
constructor(private vcRef: ViewContainerRef, private templateRef: TemplateRef<any>) {}
updateView() {
this.vcRef.clear();
this.vcRef.createEmbeddedView(this.templateRef, this.context);
}
}
이 *ngVar
지시어로 우리는 다음을 사용할 수 있습니다
<div *ngVar="false as variable">
<span>{{variable | json}}</span>
</div>
또는
<div *ngVar="false; let variable">
<span>{{variable | json}}</span>
</div>
또는
<div *ngVar="45 as variable">
<span>{{variable | json}}</span>
</div>
또는
<div *ngVar="{ x: 4 } as variable">
<span>{{variable | json}}</span>
</div>
플 런커 예 Angular4 ngVar
또한보십시오
원래 답변
앵귤러 v4
1) div
+ ngIf
+let
<div *ngIf="{ a: 1, b: 2 }; let variable">
<span>{{variable.a}}</span>
<span>{{variable.b}}</span>
</div>
2) div
+ ngIf
+as
전망
<div *ngIf="{ a: 1, b: 2, c: 3 + x } as variable">
<span>{{variable.a}}</span>
<span>{{variable.b}}</span>
<span>{{variable.c}}</span>
</div>
component.ts
export class AppComponent {
x = 5;
}
3) 래퍼를 만들고 싶지 않은 경우 div
사용할 수 있습니다.ng-container
전망
<ng-container *ngIf="{ a: 1, b: 2, c: 3 + x } as variable">
<span>{{variable.a}}</span>
<span>{{variable.b}}</span>
<span>{{variable.c}}</span>
</ng-container>
댓글에서 @Keith가 언급했듯이
이것은 대부분의 경우에 효과가 있지만 변수가 진실한 것에 의존하기 때문에 일반적인 해결책은 아닙니다.
다른 접근 방법은 업데이트를 참조하십시오.