如何在AngularJs中以字母顺序显示名称



我从数据库中获取一个数组,我正在使用angularjs ng repeat打印该数组名称,我想显示该名称
n
Naresh
S
sateesh
Sandeep
Suresh

[
  {
    "name": "suresh",
  },
  {
    "name": "naresh",
  },
  {
    "name": "sateesh",
  },
  {
    "name": "sandeep",
  }
]
I want to display the names as below using ng-repeat
 N
  Naresh
s
  Sateesh
  sandeep
  suresh

您必须预先处理您的数组并使用嵌套的ng-repeat:

在您的控制器中:

$scope.datas = [
                    { "name": "suresh"  },
                    { "name": "naresh"  },
                    { "name": "sateesh" },
                    { "name": "sandeep" }
                ];
$scope.processed = process($scope.datas);
console.log($scope.processed);
function process(arr) {
    var processed = {};
    arr.forEach(item => {
        var key = item.name[0];
        processed[key] = processed[key] || [];
        processed[key].push(item.name);
    });
    return processed;
}

在您的模板中:

<ul>
    <li ng-repeat="(key, value) in processed">
        {{key}}
        <ul>
            <li ng-repeat="item in value | orderBy "> {{item }} </li>
        </ul>                           
    </li>
</ul>   

最新更新