【发布时间】:2019-05-27 23:26:42
【问题描述】:
我有一个 items 数组并将其循环到一个组件中。单独展示物品道具:
项目数组
const items = [
{
'name': 'item1',
'prop1': 'text1',
'prop2': 'text2',
'boolval': true
},
{
'name': 'item2',
'prop1': 'text1',
'prop2': 'text2',
'boolval': false
},
{
'name': 'item3',
'prop1': 'text1',
'prop2': 'text2',
'boolval': true
}];
组件
<div class="all-items">
<app-items [item]="items"></app-items>
</div>
<div class="specific-items">
<app-items [item]="items"></app-items>
</div>
HTML
<div class="title">List</div>
<p>Name: {{item.name}}</p>
<p>Prop1: {{item.prop1}}</p>
<p>Prop2: {{item.prop2}}</p>
我想显示 .all-items div 下的所有项目,但在 .specific-itemsboolval=true 属性的项目/strong> 分区。为所有项目生成的 HTML 如下所示:
<div class="all-items">
<app-items>
<div class="title">List</div>
<p>Name: item1</p>
<p>Prop1: text1</p>
<p>Prop2: text2</p>
</app-items>
<app-items>
<div class="title">List</div>
<p>Name: item2</p>
<p>Prop1: text1</p>
<p>Prop2: text2</p>
</app-items>
<app-items>
<div class="title">List</div>
<p>Name: item3</p>
<p>Prop1: text1</p>
<p>Prop2: text2</p>
</app-items>
</div>
我想显示这样的特定项目;
<div class="specific-items">
<app-items [item]="items.filter(x => x.boolval=== true)"></app-items>
</div>
<div class="specific-items">
<app-items>
<div class="title">List</div>
<p>Name: item1</p>
<p>Prop1: text1</p>
<p>Prop2: text2</p>
<p>Name: item3</p>
<p>Prop1: text1</p>
<p>Prop2: text2</p>
</app-items>
</div>
如何在 [item]="items.filter(x => x.boolval=== true)" 这样的模板中生成特定数组并将其传递给组件?所以我想在模板中生成一个特定的数组,然后将它发送给组件
【问题讨论】:
-
您希望
.map(x => x.bool === true)做什么?这将返回一个 新的布尔数组 您可能想要 .filter 代替(尽管angular.io/guide/pipes,您应该为此使用Pipe)。也就是说,您应该使用组件 getter,或者先生成数组,如果函数(或 getter)执行繁重的操作(如数组映射),将函数(或 getter)绑定到角度组件并不是一个好习惯。 -
对不起,我拼错了,我已将地图更正为过滤器
-
x.bool有错字吗?您的数组项有一个名为boolval的字段。 -
你说得对,我已经更正了,谢谢
标签: javascript html arrays angular components