AngularJS在控制器内部重新应用过滤器不';不要更新我的内容
更新:我在上面添加了一个示例 我尝试在控制器内重新应用的过滤器有问题。此过滤器位于ng repeat内,不会发生任何情况。(我认为这就是问题所在) 概念:我截断一个文本并添加一个更多的按钮来显示它 我的模板如下所示: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
<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;
};
});