我正在编写一个自定义角度过滤器,随机大写传递给它的输入.
这是代码:
angular.module('textFilters', []).filter('goBananas', function() {
return function(input) {
var str = input;
var strlen = str.length;
while(strlen--) if(Math.round(Math.random())) {
str = str.substr(0,strlen) + str.charAt(strlen).toUpperCase() + str.substr(strlen+1);
}
return str;
};
});
Run Code Online (Sandbox Code Playgroud)
我这样称呼它是这样的:
<a class='menu_button_news menu_button' ng-href='#/news'>
{{"News" | goBananas}}
</a>
Run Code Online (Sandbox Code Playgroud)
它可以工作,但在我的控制台中我看到了一个rootScope:infdig(无限摘要)循环.
我很难理解为什么会这样,以及我可以做些什么来解决它.如果我理解正确,这是因为此函数调用了超过5个摘要动作.但输入只被过滤器调用一次,对吧?
任何帮助赞赏.
angularjs ×1