AngularJS在控制器内部重新应用过滤器不';不要更新我的内容

AngularJS在控制器内部重新应用过滤器不';不要更新我的内容,angularjs,filter,ng-repeat,Angularjs,Filter,Ng Repeat,更新:我在上面添加了一个示例 我尝试在控制器内重新应用的过滤器有问题。此过滤器位于ng repeat内,不会发生任何情况。(我认为这就是问题所在) 概念:我截断一个文本并添加一个更多的按钮来显示它 我的模板如下所示: <tr ng-repeat="app in apps"> <td> <ul> <li><a href="{[{ app.trackViewUrl }]}">{[{ a

更新:我在上面添加了一个示例

我尝试在控制器内重新应用的过滤器有问题。此过滤器位于ng repeat内,不会发生任何情况。(我认为这就是问题所在)

概念:我截断一个文本并添加一个更多的按钮来显示它

我的模板如下所示:

<tr ng-repeat="app in apps">
     <td>
         <ul>
              <li><a href="{[{ app.trackViewUrl }]}">{[{ app.trackName }]}</a></li>
              <li><strong>Description:</strong> {[{ app.description | characters:255 }]}
                  <a ng-click="changeLength(app)"><strong>More</strong></a>
              </li>
         </ul>
    </td>
 </tr>
我用这个过滤器

angular.module('truncate',[])
.filter('字符',函数(){
返回函数(输入、字符、漏字){
if(isNaN(chars))返回输入;
if(chars chars){
输入=输入。子字符串(0,字符);
如果(!breaknword){
var lastspace=input.lastIndexOf(“”);
//获得最后空间
if(lastspace!=-1){
input=input.substr(0,lastspace);
}
}否则{
while(input.charAt(input.length-1)=''){
input=input.substr(0,input.length-1);
}
}
返回输入+'…';
}
返回输入;
};
}); 
Filter是call,他将描述发回给我,但没有在DOM中应用更改。我错过了什么


谢谢。

你能提供一些实例吗?像fiddle还是plnkr?@Tiagomoutino好的,我会在晚上稍后再试。@Tiagomoutino我添加了一个plunker,我们只是为了编写运行示例所需的代码。
$scope.changeLength = function (app) {
    var txt = app.description.length;
    var description = $filter('characters')(app.description, txt, true);
    return description;
};
angular.module('truncate', [])
   .filter('characters', function () {
      return function (input, chars, breakOnWord) {
        if (isNaN(chars)) return input;
        if (chars <= 0) return '';
        if (input && input.length > chars) {
            input = input.substring(0, chars);

            if (!breakOnWord) {
                var lastspace = input.lastIndexOf(' ');
                //get last space
                if (lastspace !== -1) {
                    input = input.substr(0, lastspace);
                }
            }else{
                while(input.charAt(input.length-1) === ' '){
                    input = input.substr(0, input.length -1);
                }
            }
            return input + '...';
        }
        return input;
    };
});