<ng-container *ngFor="let hazard of hazardInfo | getObjectKeys">
<nova-accordion-item *ngIf="hazardInfo[hazard].length"
[isActive]="true">
<div accordion-item-head fxLayoutWrap>
<div novaTrunc fxFlex="100" fxFlex.sm="100">
<nova-icon-text *ngIf="hazard === 'assetHazards'"
[icon]="'icon-triangles_three'" [text]="
('details.assetHazards'|sgTranslatePipe) +' (
'+hazardInfo.assetHazards.length+' )'"></nova-icon-text>
<nova-icon-text *ngIf="hazard === 'propertyHazards'"
[icon]="'icon-office'" [text]="
('details.propertyHazards'|sgTranslatePipe) +' (
'+hazardInfo.propertyHazards.length+' )'"></nova-icon-text>
<nova-icon-text *ngIf="hazard === 'spaceHazards'" [icon]="'icon-square_opening'" [text]="('details.spaceHazards'|sgTranslatePipe) +' ( '+hazardInfo.spaceHazards.length+' )'"></nova-icon-text>
</div>
</div>
<div accordion-item-body fxLayoutWrap>
<workorder-ehs-hazard-table fxFlexFill [data]="hazardInfo[hazard]"></workorder-ehs-hazard-table>
</div>
</nova-accordion-item>
</ng-container>
public getOrderType(): string {
if (this.selectedOrder.assets && this.selectedOrder.assets.length) {
return 'asset';
} else if (this.selectedOrder.property && (this.selectedOrder.space &&
this.selectedOrder.space.hasOwnProperty('id'))) {
return 'space';
} else if (this.selectedOrder.property) {
return 'property';
}
}我有三种顺序,由一组条件决定,列表顺序如下资产顺序:资产,空间,属性|
空间顺序:空间、资产、属性
属性顺序:属性、空间、资产
如何使用管道或任何其他有效方式来实现这一点
发布于 2018-08-07 15:13:17
发布于 2018-08-07 15:23:32
可以将管道注入到构件中。然后,您可以在dataset发生更改时调用它们,例如在ngOnChanges()-Lifecycle挂钩中。
public constructor(
private assetPipe AssetPipe,
private spacePipe SpacePipe,
private propertyPipe PropertyPipe
){}
public reorder(){
switch(this.getOrderType()){
case 'asset':
this.hazardInfo = this.assetPipe.transform(this.hazardInfo)
this.hazardInfo = this.spacePipe.transform(this.hazardInfo)
this.hazardInfo = this.propertyPipe.transform(this.hazardInfo)
break
case 'space':
...
case 'property':
...
}
}
public ngOnChanges(){
this.reorder()
}https://stackoverflow.com/questions/51720799
复制相似问题