带Ajax调用的Angular表达式绑定的无限循环

佩德罗4441

我正在开发一个基本的Angular应用,该应用读取提要。

我在index.html中返回控制器单击此按钮得到的值

<button ng-click="loadFeed()">Load News</button>

问题是,如果我尝试这样做:

{{loadFeed()}}

它进入了一个不确定的循环。

Controllers.js:

myApp.controller("FeedCtrl", ['$scope','FeedService', function ($scope,Feed) {    
$scope.feedSrc = "http://rss.cnn.com/rss/cnn_topstories.rss";

$scope.loadFeed=function(){        
    Feed.parseFeed($scope.feedSrc).then(function(res){
        $scope.feeds=res.data.responseData.feed.entries;
    });

}
}]);

myApp.factory('FeedService',['$http',function($http){
return {
    parseFeed : function(url){
        return $http.jsonp('//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=50&callback=JSON_CALLBACK&q=' + encodeURIComponent(url));
    }
}
}]);

抱歉,我对AngularJS非常陌生。我看到了另一个类似的主题,但无法解决我的问题。

TM值

当第一个$ digest循环被触发时,您的{{loadFeed()}}表达式将被求值。这会产生对使用$ http的函数parseFeed的调用。现在,这就是问题的原因,Angular在通过$ http的ajax请求中所做的最后一件事是调用$ rootScope。$ apply()这将触发另一个$ digest循环,这将使表达式再次被求值,从而触发另一个$ rootScope。$ apply(),并且您已经可以看到无限循环在这里进行了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式无限循环

来自分类Dev

正则表达式:无限循环

来自分类Dev

C ++正则表达式无限循环

来自分类Dev

C ++:布尔表达式导致无限While循环

来自分类Dev

使用正则表达式的无限循环

来自分类Dev

带条件的嵌套循环的Java Lambda表达式

来自分类Dev

带OR的Xpath表达式

来自分类Dev

在循环中使用正则表达式时,应用程序进入无限循环

来自分类Dev

绑定表达式不能包含链接表达式(Angular 8)

来自分类Dev

如何绑定Angular 2表达式和TypeScript方法?

来自分类Dev

为什么我的正则表达式会导致无限循环?

来自分类Dev

如果给出空白的regex表达式,则regex_replace中的C ++ Mac OS无限循环

来自分类Dev

在pyparsing中尝试简单的indentedBlock表达式时出现无限循环

来自分类Dev

为什么我的正则表达式会导致无限循环?

来自分类Dev

电子邮件正则表达式导致无限循环

来自分类Dev

使用表达式字符串调用Angular $ filter

来自分类Dev

在 for 循环中使用带括号表达式的多个变量

来自分类Dev

Django-带表达式的模板

来自分类Dev

带* args的lambda表达式

来自分类Dev

带空括号的Lambda表达式()

来自分类Dev

带正则表达式的MaskFormatter

来自分类Dev

带参数的异步lambda表达式

来自分类Dev

带条件的正则表达式

来自分类Dev

带if条件的正则表达式

来自分类Dev

带表达式的C ++模板参数

来自分类Dev

带grep的正则表达式

来自分类Dev

Django-带表达式的模板

来自分类Dev

带括号的C ++表达式

来自分类Dev

带条件的正则表达式