首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每个单元应用自定义角滤波器

每个单元应用自定义角滤波器
EN

Stack Overflow用户
提问于 2014-06-01 18:01:39
回答 1查看 75关注 0票数 0

查看利用AngularJS掌握网络开发,我运行了这个自定义过滤器来修剪文本,删除最后3个字符,如果输入超过限制,就追加...

app.html

代码语言:javascript
复制
  <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

代码语言:javascript
复制
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

控制台

代码语言:javascript
复制
limitToFilter('ABCDEF', 2) A 
input: ["HEY THERE", "me"] input.length 2 limit: 2 
input: ["HEY THERE", "me"] input.length 2 limit: 2 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-01 18:12:24

应该在字符串上使用筛选器,而不是在数组上使用:

代码语言:javascript
复制
<tr ng-repeat="s in strs">
    <td>{{s | customTrim:2}}</td>
</tr>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23982807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档