我想将它作为limitTo(输入,开始,结束)使用? 如何设置开始索引?
答案 0 :(得分:5)
版本1.4
正如 @doldt 所强调的那样,Angular 1.4现在添加了一个功能来指示限制的开始和结束:
{{ limitTo_expression | limitTo : limit : begin}}
https://code.angularjs.org/1.4.0/docs/api/ng/filter/limitTo
以前的版本1.4
Angular limitTo
不支持多个参数:
{{ limitTo_expression | limitTo : limit}}
过滤器limitTo
创建一个新数组或字符串,其中只包含limit
参数中指定数量的元素。
因此,推荐的选项是创建自定义过滤器。
例如,此处是 Online Demo ,您可以这样做:
请注意,过滤器的第一个参数是"数据源" (整个清单)。过滤器的目的是过滤数据源。
HTML示例
<ul ng-controller="myCtrl">
<li ng-repeat="row in friends |myFilter:2:5 ">{{row.name}}</li>
<ul>
Js App和过滤器创建
var myApp = angular.module('myApp',[]);
myApp.filter('myFilter', function() {
return function(items, begin, end) {
return items.slice( begin, end);
}
});
function myCtrl($scope)
{
$scope.friends = [
{name:'John', age:25, gender:'boy'},
{name:'Jessie', age:30, gender:'girl'},
{name:'Johanna', age:28, gender:'girl'},
{name:'Joy', age:15, gender:'girl'},
{name:'Mary', age:28, gender:'girl'},
{name:'Peter', age:95, gender:'boy'},
{name:'Sebastian', age:50, gender:'boy'},
{name:'Erika', age:27, gender:'girl'},
{name:'Patrick', age:40, gender:'boy'},
{name:'Samantha', age:60, gender:'girl'}
];
}
myApp.controller('myCtrl',myCtrl);
答案 1 :(得分:1)
创建自己的过滤器来实现此目的。请尝试以下,
app.filter('limitFromTo', function(){
return function(input, from, to){
return (input != undefined)? input.slice(from, to) : '';
}
});
用法:
{{ limitTo_expression | limitFromTo : from : to}}
答案 2 :(得分:1)
您可以通过将limitTo
过滤器顺序应用到数组来实现令人失望的结果。
假设您要从4到9中提取项目:
<强> HTML:强>
{{ someArray | limitTo: to | limitTo: from}}
<强> JS 强>
var from = 4;
$scope.to = 9;
$scope.from = from - $scope.to; // This value must be a negative