angularjs – 发送$http.get两次
发布时间:2020-12-17 09:28:34 所属栏目:安全 来源:网络整理
导读:编辑1:伙计,我注意到我在认证工厂里调用$http.get(‘/ posts’)(用于某些特殊目的).对不起,这个愚蠢的问题.赏金结束时我会删除它. 我有以下代码来加载页面https:// localhost:3000 /#/ home,它从数据库中获取所有帖子并显示它们. 问题是,我意识到日志rout
编辑1:伙计,我注意到我在认证工厂里调用$http.get(‘/ posts’)(用于某些特殊目的).对不起,这个愚蠢的问题.赏金结束时我会删除它.
我有以下代码来加载页面https:// localhost:3000 /#/ home,它从数据库中获取所有帖子并显示它们. 问题是,我意识到日志router.get / posts是打印两次,而这里和那里只有一次警告. 有人知道这是否意味着$http.get进行两次?如果是,问题在哪里? app.config(... ...) { $stateProvider .state('global',{ templateUrl: '/htmls/global.html',controller: 'GlobalCtrl' }) .state('global.home',{ url: '/home',templateUrl: '/htmls/home.html',controller: 'MainCtrl',resolve: { postPromise: ['posts',function (posts) { return posts.getAll(); }] } }); }]); app.factory('posts',['$http','auth',function ($http,auth) { var o = { posts: [] }; o.getAll = function () { alert("before"); return $http.get('/posts').then(function (res) { alert("after"); angular.copy(res.data,o.posts); }) } ... ... }]); app.controller('GlobalCtrl',[function () { }]); app.controller('MainCtrl',['$scope','posts','postPromise',function ($scope,posts,auth,postPromise) { ... ... 在后端: router.get('/posts',function (req,res,next) { console.log("router.get /posts"); Post.find(function (err,posts) { if (err) return next(err); res.json(posts); }); }); PS:我刚刚意识到一件事:我在网站上设置了一个登录和注销.当我没有登录时,https:// localhost:3000 /#/ home只显示一次router.get / posts;当我登录时会出现问题.
因为你说当你记录的时候出现问题,这是因为你使用角ui路由器这两个事件非常重要.
$stataChangeStart(...),and $stateChangeSuccesss(...) 请注意您正在使用的解决方案 .state('global.home',function (posts) { return posts.getAll(); }] } }) 在跳转发生在目标网址之前首先解决,然后视图被更改/更新. 一个解决方案是: 请确保你有’&&’条件要在这里检查,因为您尝试先登录,然后获取数据. 如果您使用的是角式ui路由器版本0.12,请升级版本,以解决问题.谢谢. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |