我正在尝试使用ng-repeat迭代数组以在列表中显示。要显示的记录数应等于第二个数组的长度。
<ul>
<li ng-repeat="item in firstArray"></li>
</ul>
var firstArray = ["a","b","c","d","e","f"]
var secondArray = ["x","y","z"]
上述示例的预期结果:
var output = ["a","b","c"]
由于secondArray的长度为3,因此来自firstArray的前三个值的li元素数将为3。
我应该使用过滤器吗?我正在使用angularjs。
由于
答案 0 :(得分:5)
最简单的解决方案是使用limitTo
<ul>
<li ng-repeat="item in firstArray | limitTo:secondArray.length">{{item}}</li>
</ul>
答案 1 :(得分:1)
<ul>
<li ng-repeat="item in firstArray" ng-if=" $index < secondArray.length "></li>
</ul>
使用上面的代码,它将起作用
答案 2 :(得分:1)
您可以在ng-repeat中使用AngularJs过滤器limitTo。请参阅以下示例:
在有角度的应用方面:
>>> processed = ((k, list(l)) for k, l in groupby(text, str.isspace))
>>> result = [(len(l), " ") if k else (len(l), "".join(l)) for k, l in processed]
>>> result
[(2, 'Am'), (20, ' '), (1, 'G'), (10, ' '), (1, 'C')]
在您看来:
db.Products.Where(p => p.Name == "product").Skip(10).Take(10).ToList();
答案 3 :(得分:0)
也许您应该使用$ index来测试是否必须显示它:
<ul >
<li ng-repeat="item in firstArray" ng-if="$index < secondArray.length()" > </li>
</ul>
答案 4 :(得分:0)
只需遍历第二个数组,然后使用firstArray[$index]
访问第一个数组的项目。
angular.module('myApp', [])
.controller('myCtrl', function ($scope) {
$scope.firstArray = ["a","b","c","d","e","f"];
$scope.secondArray = ["x","y","z"];
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp">
<div ng-controller="myCtrl">
<ul>
<li ng-repeat="i in secondArray">
{{firstArray[$index]}}
</li>
</ul>
</div>
</div>
&#13;