Angular limitTo未返回正确的输出
Angular limitTo does not return proper output
我猜下面代码的输出应该是text3和text 4,但没有得到正确的输出。那里的代码有问题吗?
HTML
<body ng-app="angularjs-starter" ng-controller="MainCtrl">
<h1>Hello {{name}}</h1>
<div ng-repeat="t in getTimes(4) | limitTo:-2">text {{$index+1}}</div>
</body>
JS-
var app = angular.module('angularjs-starter', []);
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
$scope.getTimes = function(n) {
return new Array(n);
};
});
$index
将始终从0开始,与limitTo
过滤器无关。因此,只需在绑定表达式中直接使用t
即可。
<body ng-app="angularjs-starter" ng-controller="MainCtrl">
<h1>Hello {{name}}</h1>
<div ng-repeat="t in getTimes(4) | limitTo:-2">text {{t}} </div>
</body>
var app = angular.module('angularjs-starter', []);
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
$scope.getTimes=function(n){
return new Array(n);
};
});
您的代码不起作用,因为您的集合中有重复项,并且getTimes()
正在重新调整[undefined, undefined, undefined, undefined]
。
在这种情况下,请将t in getTimes(4) | limitTo:-2 track by $index
与正确的数组初始化一起使用,或者使用避免重复的函数。
另一个问题是$index
总是以0开头。因此,您不会像预期的那样得到文本3和文字4。如果需要数组值,则需要使用text {{t}}
。
示例:
按$index跟踪
var app = angular.module('angularjs-starter', []);
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
$scope.getTimes=function(n){
return new Array(n);
};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="angularjs-starter" ng-controller="MainCtrl">
<h1>Hello {{name}}</h1>
<div ng-repeat="t in getTimes(4) | limitTo:-2 track by $index">text {{$index+3}}</div>
</body>
或
序列阵列
var app = angular.module('angularjs-starter', []);
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
$scope.getTimes = function(n){
return Array.apply(null, {length: n}).map(Number.call, Number); // [0, 1, ..., n-1]
};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="angularjs-starter" ng-controller="MainCtrl">
<h1>Hello {{name}}</h1>
<div ng-repeat="t in getTimes(4) | limitTo: -2">text {{t+1}}</div>
</body>
相关文章:
- Eloquent JavaScript递归示例如何终止为返回1,但仍然输出指数值
- Angular limitTo未返回正确的输出
- 如何从javascript返回输出json
- 无法获取输出.返回代码206.缺少值
- 如何在角度过滤器内返回 html5 音频/视频作为输出
- JS函数只返回未定义的数据,但alert输出正确的数据
- Javascript错误-左移位返回错误的输出
- 如何在Angular js中返回html代码作为过滤器的输出
- ajax方法返回错误时如何打印输出
- JScalc.io计算器基本故障(输出变量为空,不返回数字)
- 修改输入中的数组,然后返回输出
- 将字符串返回到类型为“0”的输出字段;数字“;针对用户错误javascript
- 如何在 javascript 中获取递归函数来输出每个返回值
- 为什么我的 JSON 代码使用自己的输出(来自 JSON.stringify)返回“语法错误”
- 将regex输出返回到第一种情况
- Json输出返回'未定义'关于渲染
- javascript输出返回控制台
- 天气.JavaScript的asmx web服务-没有输出返回
- 数组通过索引的输出返回未定义
- 构造函数的 JavaScript 输出返回为“未定义”