Angular - 如何将 ngClass 逻辑从模板移动到 ts 文件?
Angular - How can I move ngClass logic from template to ts file?
在 Angular 应用程序中,我使用下拉过滤器进行用户选择。我在 ngClass
中添加了逻辑
<div [ngClass]="i > 2 && 'array-design'">
如何将分类逻辑移至控制器?因为当它们在模板中时,无法对它们进行单元测试。
<ng-container *ngIf="searchFilters.length > 0; else loading">
<div class="filter-items" *ngFor="let filter of searchFilters; index as i">
<div [ngClass]="i > 2 && 'array-design'">
<app-multi-select [items]="filter.navigators" [title]="filter.name"></app-multi-select>
</div>
</div>
</ng-container>
.scss
.cross-reactivity, .array-design{
display: flex;
flex-direction: row;
align-items: center;
margin-right: 5px;
}
您可以将条件语句移动到函数中并在 HTML 中使用它的 return。
html
[ngClass]="filterClass(i)"
ts
const filterClass = (i) => i > 2 && 'array-design';
在 Angular 应用程序中,我使用下拉过滤器进行用户选择。我在 ngClass
中添加了逻辑 <div [ngClass]="i > 2 && 'array-design'">
如何将分类逻辑移至控制器?因为当它们在模板中时,无法对它们进行单元测试。
<ng-container *ngIf="searchFilters.length > 0; else loading">
<div class="filter-items" *ngFor="let filter of searchFilters; index as i">
<div [ngClass]="i > 2 && 'array-design'">
<app-multi-select [items]="filter.navigators" [title]="filter.name"></app-multi-select>
</div>
</div>
</ng-container>
.scss
.cross-reactivity, .array-design{
display: flex;
flex-direction: row;
align-items: center;
margin-right: 5px;
}
您可以将条件语句移动到函数中并在 HTML 中使用它的 return。
html
[ngClass]="filterClass(i)"
ts
const filterClass = (i) => i > 2 && 'array-design';