需要帮助。这是我一直在寻找的解决方案.. 我试图从数组中显示6个元素,不包括隐藏元素。即:如果技术上有两个隐藏元素,则必须显示8个元素。我不想增加绑定到limitTo的范围对象,因为它正在做很多复杂化。有没有什么办法可以使用过滤器将limitTo保持为常量并绕过limitTo过滤器,如果该元素被隐藏。我一直在寻找解决方案几天。什么都没有成功。如果有人可以提供帮助,我将非常感激。
<div data-ng-repeat="user in vm.userList | limitTo: '6" ng-hide="user.checked">
<input type="checkbox" ng-model="user.checked"> {{user.name}}</input>
</div>
答案 0 :(得分:0)
你需要改变一点方法。而不是ng-hide
使用filter
,请参阅下面的示例
var app = angular.module('app', []);
app.controller('fCtrl', function($scope) {
var vm = this;
vm.userList = [
{
name: 1,
checked: true
}, {
name: 2,
checked: false
}, {
name: 3,
checked: true
}, {
name: 4,
checked: false
}, {
name: 5,
checked: false
}, {
name: 6,
checked: false
}, {
name: 7,
checked: false
}, {
name: 8,
checked: false
}, {
name: 9,
checked: false
}, {
name: 10,
checked: false
}, {
name: 11,
checked: false
},
];
return vm;
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app">
<div ng-controller="fCtrl as vm">
<div data-ng-repeat="user in vm.userList | filter: {checked:false}| limitTo: 6">
{{$index+1}})
<input type="checkbox" ng-model="user.checked">{{user.name}}</input>
</div>
</div>
</div>
&#13;