Luc*_*nik 3 ngfor angular-flex-layout angular
我在角4项目中使用了材质flex的标记,看起来像这样.
<div fxLayout="row">
<div fxFlex="65">
</div>
<div fxFlex="35">
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我有一系列这样的元素:
public array: [object] = [
{
firstName: 'value',
lastName: 'value'
},
{
firstName: 'value',
lastName: 'value'
},
{
firstName: 'value',
lastName: 'value'
},
{
firstName: 'value',
lastName: 'value'
},
{
firstName: 'value',
lastName: 'value'
},
];
Run Code Online (Sandbox Code Playgroud)
我想遍历这个数组并填充65%div中所有元素的一半,其余元素填充在35%div中.如何*ngFor正确地使用指令?现在我有这样的解决方案.但它看起来很可怕而且不易阅读.
<div fxLayout="row">
<div fxFlex="65">
<div *ngFor="let item of array; let i = index">
<div *ngIf="i < 3">
<p>{{ item.firstName }}</p>
<p>{{ item.lastName }}</p>
</div>
</div>
</div>
<div fxFlex="35">
<div *ngFor="let item of array; let i = index">
<div *ngIf="i >= 3">
<p>{{ item.firstName }}</p>
<p>{{ item.lastName }}</p>
</div>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
有没有其他解决方案呢?我也尝试过使用<template>元素.但我的尝试失败了.请帮助我!
您可以使用SlicePipe,如此plunker中所示.
<div fxLayout="row">
<div fxFlex="65">
<div *ngFor="let item of array | slice:0:half">
<p>{{ item.firstName }}</p>
<p>{{ item.lastName }}</p>
</div>
</div>
<div fxFlex="35">
<div *ngFor="let item of array | slice:half">
<p>{{ item.firstName }}</p>
<p>{{ item.lastName }}</p>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
该half属性将在组件类中定义:
import {Component} from '@angular/core';
@Component({
...
})
export class Component1 {
public array: [object] = [
{
firstName: 'first1',
lastName: 'last1'
},
{
firstName: 'first2',
lastName: 'last2'
},
...
];
public get half(): number {
return Math.ceil(this.array.length / 2);
}
}
Run Code Online (Sandbox Code Playgroud)