angular ui-router 路由 页面不刷新

chanel_1 2015-08-11 05:44:12
最近用angular.js 做项目发现一个问题,就是点击导航的时候,如果是首次点击还好,
network下看到发送了请求页面,但是点击其他导航后,再点击此导航时,angular默认从缓存里面加载进来这个页面,只有刷新这个页面才能显示出来最新的信息。
如何实现每次点击都激活加载路由一次,因为做的项目很多订单信息都是实时变化的。

网上搜索了很多方法都不行,我用的是angular-ui-router插件,写法如下:

ar myUIRoute = angular.module('MyUIRoute', ['ui.router']);
myUIRoute.config(function($stateProvider, $urlRouterProvider,$locationProvider) {
$urlRouterProvider.otherwise("/index");
$stateProvider
.state('index', {
url: "/index",
templateUrl: "../Portal/indexIframe.do"
})

.state('attention-myorder', {
url: "/attention/myorder?stat&pageNum",
templateUrl: function($routeParams){
return "../attention/Order/myOrder.do?stat="+$routeParams.stat+"&pageNum="+$routeParams.pageNum;
}

})
。。。。。。

加了cache:false不行,

在页面ui-sref 后面加ui-sref-opts="{reload:true}" 不行,

就是怎么都不会重新发送请求,跪求大神啊!!!

很急,项目赶着上线,555~
...全文
13162 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sursamer1 2018-12-11
  • 打赏
  • 举报
回复
都没有什么用
aini1091 2017-05-02
  • 打赏
  • 举报
回复
这几个办法我都用了,还是不管用。。。。
shijie32177 2017-01-24
  • 打赏
  • 举报
回复
我用了各位的方法没效果,自己尝试了,在angular-ui-route.js文件中 找到reload:false改为true即可
XX19890923 2016-07-25
  • 打赏
  • 举报
回复
添加cache: false可以啊 第二次单击就会刷新啊 .state("tabs.me", { url: "/me", views: { "tab-me": { templateUrl: "me.html", controller: "myCtrl" } }, // 每次单击调用控制器,不缓存 cache: false });
llggg111 2015-10-20
  • 打赏
  • 举报
回复
ui-sref-opts="{reload: true}" 可以让强制刷新

 <li class="icon_message icon_state" ui-sref-active="icon_message_active"><a ui-sref="index" ui-sref-opts="{reload: true}" >线索选题</a></li>
马老_ 2015-10-09
  • 打赏
  • 举报
回复
controller里注入$injector,然后$injector.get('$templateCache').removeAll(); 搞定! kanConsole.controller('areaController', function($scope, $compile, $stateParams,$injector) { $injector.get('$templateCache').removeAll(); 。。。
chanel_1 2015-09-30
  • 打赏
  • 举报
回复
引用 3 楼 wpqh918 的回复:
引用 1 楼 qq_19965967 的回复:
昨天找到答案,自己解决了~
请问楼主怎么解决的? 求分享。。。
.run(['$rootScope', '$window', '$location', '$log','$templateCache', function ($rootScope, $window, $location, $log,$templateCache) { var stateChangeSuccess = $rootScope.$on('$stateChangeSuccess', stateChangeSuccess); function stateChangeSuccess($rootScope) { $templateCache.removeAll(); } }]);
wpqh918 2015-09-18
  • 打赏
  • 举报
回复
引用 1 楼 qq_19965967 的回复:
昨天找到答案,自己解决了~
请问楼主怎么解决的? 求分享。。。
sinat_18865689 2015-08-14
  • 打赏
  • 举报
回复
angular可以监听$stateChangeSuccess事件,可以在里面设置$templateCache
chanel_1 2015-08-12
  • 打赏
  • 举报
回复
昨天找到答案,自己解决了~

87,888

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧