为每个元素应用自定义角过滤器
Applying Custom Angular Filter per Element
看着精通Web开发与AngularJS,我运行这个自定义过滤器修剪文本,剪掉最后3个字符,并追加...
,如果输入超过限制。
app.html
<div ng-controller="MyCtrl">
<table>
<thead>
<th>Name</th>
</thead>
<tbody>
<tr ng-repeat="s in strs | customTrim:2">
<td>{{s}}</td>
</tr>
</tbody>
</table>
app.js
var myApp = angular.module('myApp',[]);
myApp.controller("MyCtrl", function ($scope) {
$scope.strs = ["HEY THERE", "me"];
});
myApp.filter('customTrim', function($filter) {
var limitToFilter = $filter('limitTo');
console.log("limitToFilter('ABCDEF', 2)",
limitToFilter('ABCDEF', 2));
return function(input, limit) {
console.log("input:", input, "input.length", input.length,
"limit:", limit);
if(input.length > limit) {
console.log("returning...");
console.log(limitToFilter(input, limit-3) + "...");
return limitToFilter(input, limit-3) + "...";
}
return input;
}
});
然而,输出的似乎是strs
的长度,而不是单个的s
。
我如何将数组的每个项目传递到我的customFilter
?
limitToFilter('ABCDEF', 2) A
input: ["HEY THERE", "me"] input.length 2 limit: 2
input: ["HEY THERE", "me"] input.length 2 limit: 2
您应该在字符串上使用过滤器,而不是在数组上使用过滤器:
<tr ng-repeat="s in strs">
<td>{{s | customTrim:2}}</td>
</tr>
相关文章:
- 如何在angular.js中动态应用自定义过滤器
- AngularJS自定义过滤器未触发点击事件
- Vue.js如何在定义API变量之前实现自定义过滤器
- 用于分页的 AngularJS 自定义过滤器
- 为什么我的自定义过滤器会导致无限消化
- 如何仅在文本字段中有值时才将自定义过滤器应用于 ng-repeat
- 指令中的 AngularJS 自定义过滤器以格式化值
- Angular自定义过滤器在处理某些匹配时注销,但会过滤掉所有结果
- Angular js自定义过滤器未定义
- AngularJS自定义过滤器调用了两次,并在第二次调用时删除输入数据
- 自定义过滤器的问题,我缺少什么
- 如何在Angular 1.3.6上创建一个自定义过滤器来搜索嵌套数组
- json数组angularjs中的自定义过滤器
- 两个日期之间的自定义过滤器 AngularJS
- PG-promise为选择查询创建自定义过滤器
- 角度.js. 如何计算满足自定义过滤器的 ng 重复迭代
- Angular JS“Startswith”自定义过滤器
- 无法让 Angular 自定义过滤器工作
- AngularJS自定义过滤器被调用两次
- 如何使用 Angularjs 创建自定义过滤器