Javascript 如何在angular中迭代对象数组,但只显示带有{{}的属性?
假设我们有一个对象数组:Javascript 如何在angular中迭代对象数组,但只显示带有{{}的属性?,javascript,arrays,json,angularjs,angularjs-directive,Javascript,Arrays,Json,Angularjs,Angularjs Directive,假设我们有一个对象数组: var items = [ { id: 1, name: 'name1' }, { id: 2, name: 'name2' }, { id: 3, name: 'name3' } ]; 我们希望使用以下内容在HTML中对其进行迭代: {{ctrl.items}} 在UI中应为: name1, name2, name3 这可能吗?或者我必须使用ngRepeat吗 我想这样做主要是为了利用{
var items = [
{
id: 1,
name: 'name1'
}, {
id: 2,
name: 'name2'
},
{
id: 3,
name: 'name3'
}
];
我们希望使用以下内容在HTML中对其进行迭代:
{{ctrl.items}}
在UI中应为:
name1, name2, name3
这可能吗?或者我必须使用ngRepeat吗
我想这样做主要是为了利用{{}}中的limito过滤器,您可以在HTML中使用类似的代码
{{ctrl.getNames(ctrl.items)}}
在控制器中添加此函数
this.getNames = function(items){
return items.map(function(item){return item.name;}).join(", ");
}
或者你可以做一个过滤器
app.filter("names",function(){
return function(input){
return input.map(function(item){return item.name;}).join(", ");
};
});
在HTML中使用
{{ctrl.items | names}}
您可以在HTML中使用这样的代码
{{ctrl.getNames(ctrl.items)}}
在控制器中添加此函数
this.getNames = function(items){
return items.map(function(item){return item.name;}).join(", ");
}
或者你可以做一个过滤器
app.filter("names",function(){
return function(input){
return input.map(function(item){return item.name;}).join(", ");
};
});
在HTML中使用
{{ctrl.items | names}}
您可以通过使用ng repeat和Limito过滤器来实现这一点:
<div ng-repeat="item in items | limitTo: 3">{{ item.name }}</div>
编辑:
您可以通过使用ng repeat和Limito过滤器来实现这一点:
<div ng-repeat="item in items | limitTo: 3">{{ item.name }}</div>
编辑:
你的问题不太清楚。是的,你会使用ng-repeat,而limitTo在ng-repeat中工作得非常好。你的问题不是很清楚。是的,您将使用ng repeat,并且limitTo在ng-repeat中工作得非常好。包含逗号的最简单解决方案{{ctrl.items | names | limitTo:2}}是否有效?您应该在名称筛选之前使用limitTo筛选,因此类似于此{ctrl.items | limitTo:2 | names}包含逗号的最简单解决方案{{ctrl.items | names | limitTo:2}有效吗?您应该在名称筛选之前使用limitTo筛选,因此它将是这样的{{ctrl.items | limitTo:2 | names}如何在每个项之间实现逗号?在最后一项之后没有逗号。如何在每个项之间实现逗号?在最后一项之后没有逗号。