Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在angular中迭代对象数组,但只显示带有{{}的属性?_Javascript_Arrays_Json_Angularjs_Angularjs Directive - Fatal编程技术网

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}如何在每个项之间实现逗号?在最后一项之后没有逗号。如何在每个项之间实现逗号?在最后一项之后没有逗号。