Javascript 如何在ng repeat中显示数组的特定字母表项?

Javascript 如何在ng repeat中显示数组的特定字母表项?,javascript,html,css,angularjs,ng-repeat,Javascript,Html,Css,Angularjs,Ng Repeat,我有两个数组,一个用于字母表,另一个用于标记。。 因此,我只想在特定的字母表类别中显示相同的字母表项 示例--苹果必须归入一个类别,而动物园必须归入Z类别…… 小提琴连杆 html <div class="form-group" ng-controller="mainCtrl"> <div ng-repeat="alp in alpha"> <h2>{{alp}}</h2> <ul> <li ng-re

我有两个数组,一个用于字母表,另一个用于标记。。 因此,我只想在特定的字母表类别中显示相同的字母表项 示例--苹果必须归入一个类别,而动物园必须归入Z类别……

小提琴连杆

html

<div class="form-group" ng-controller="mainCtrl">
  <div ng-repeat="alp in alpha">
  <h2>{{alp}}</h2>
    <ul>
      <li ng-repeat="tag in tags">{{tag}}</li>
    </ul>
  </div>
</div>

您可以使用
str.startsWith
检查元素是否以特定字符开头 在你的例子中:

<div class="form-group" ng-controller="mainCtrl">
  <div ng-repeat="alp in alpha">
  <h2>{{alp}}</h2>
    <ul>
      <li ng-repeat="tag in tags" ng-show="{{tag.startsWith(alp)}}">{{tag}}</li>
    </ul>
  </div>
</div>

{{alp}}
  • {{{tag}
以下是您可以这样使用的接线:

var-app=angular.module(“app”,[]);
app.controller(“mainCtrl”、[“$scope”、函数($scope){
$scope.alpha=[“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”、“l”、“m”、“n”、“o”、“p”、“q”、“r”、“s”、“t”、“u”、“v”、“w”、“x”、“y”、“z”];
$scope.tags=[“苹果”、“狗”、“猫”、“爸爸”、“宝宝”、“动物园”、“爱”、“恨”、“老鼠”、“房间”、“家”、“年龄”、“坏”];
$scope.f=功能(alp){
返回函数(标签){
返回标签[0]==alp;
}	
}
}]);

{{alp}}
  • {{tag}

在第二次ng重复中使用自定义过滤器

使用ng show将在alpha组中创建不需要的dom元素

var-app=angular.module(“app”,[]);
app.controller(“mainCtrl”、[“$scope”、函数($scope){
$scope.alpha=[“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”、“l”、“m”、“n”、“o”、“p”、“q”、“r”、“s”、“t”、“u”、“v”、“w”、“x”、“y”、“z”];
$scope.tags=[“苹果”、“狗”、“猫”、“爸爸”、“宝宝”、“动物园”、“爱”、“恨”、“老鼠”、“房间”、“家”、“年龄”、“坏”];
}]);
app.filter('myfilter',function(){
返回函数(输入,文本){
//我建议对旧浏览器使用下划线库。
返回输入。过滤器(函数(项){
//我建议对旧浏览器使用标准正则表达式。
返回项目。开始使用(文本);
});
};
});

{{alp}}
  • {{{tag}

加上1个完美答案。这将在每个处于隐藏状态的alpha下添加所有标记,结果会添加更多html li元素。这一个非常完美。。不加载其他元素+1.
<div class="form-group" ng-controller="mainCtrl">
  <div ng-repeat="alp in alpha">
  <h2>{{alp}}</h2>
    <ul>
      <li ng-repeat="tag in tags" ng-show="{{tag.startsWith(alp)}}">{{tag}}</li>
    </ul>
  </div>
</div>