Angularjs $route.reload()不适用于ui路由器
我换成了电视。除了一件事,一切都很顺利。在我的页面上,我有一个选择,可以更改应用程序的上下文。无论如何,在前面,当这个上下文被更改时,我正在执行这个代码(特别是,set方法): 及Angularjs $route.reload()不适用于ui路由器,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我换成了电视。除了一件事,一切都很顺利。在我的页面上,我有一个选择,可以更改应用程序的上下文。无论如何,在前面,当这个上下文被更改时,我正在执行这个代码(特别是,set方法): 及 他在做最重要的事情。它重新加载了页面。但在切换到ui路由器后,$route.reload不起任何作用。我也没有在ui路由器API中找到对应的。如何解决这个问题?好的,当我将$state注入控制器时,它会工作 但当将其注入服务(如代码片段)时,$state当然是未定义的 虽然 $state.go('.') 没有工作,
他在做最重要的事情。它重新加载了页面。但在切换到ui路由器后,$route.reload不起任何作用。我也没有在ui路由器API中找到对应的。如何解决这个问题?好的,当我将$state注入控制器时,它会工作 但当将其注入服务(如代码片段)时,$state当然是未定义的 虽然
$state.go('.')
没有工作,我做了这样的事情:
$stateProvider
.state('home', {
controller: function ($state) {
$state.go('advisoryLeadOffering.packages');
}
})
.state('advisoryLeadOffering.packages', {
url: "/packages",
templateUrl: "/AdvisoryLeadOffering/Packages",
controller: 'AdvisoryLeadOfferingPackages'
})
$state.transitionTo('home');
当我需要重新加载时,我会这样做:
$stateProvider
.state('home', {
controller: function ($state) {
$state.go('advisoryLeadOffering.packages');
}
})
.state('advisoryLeadOffering.packages', {
url: "/packages",
templateUrl: "/AdvisoryLeadOffering/Packages",
controller: 'AdvisoryLeadOfferingPackages'
})
$state.transitionTo('home');
范围内的方法。如何:
$state.go($state.$current, null, { reload: true });
我遇到了一个类似的问题,我希望控制器外部有一个链接来刷新状态,然后在控制器中创建了一个
reload()
函数
SomeCtrl
:
$scope.reload = function(){
$state.transitionTo('myState');
}
将此添加到您的锚中:
ng-click="reload()"
H/T@dragonfly为我指出了
transitiono()
你可以做$state.reload()
它有一个bug,有时不重新实例化控制器。
你可以和我一起解决这个问题
$state.transitionTo($state.current, $stateParams, { reload: true, inherit: true, notify: true });
唯一对我有用的是: 创建重定向状态:
$stateProvider.state('redirect', {
url: 'redirect/:to',
controller: function($state, $stateParams, $scope) {
$state.go($stateParams.to, null, {reload: true});
}
});
$state.go('redirect', {to: $state.current.name}, {reload: true});
转到此状态:
$stateProvider.state('redirect', {
url: 'redirect/:to',
controller: function($state, $stateParams, $scope) {
$state.go($stateParams.to, null, {reload: true});
}
});
$state.go('redirect', {to: $state.current.name}, {reload: true});
你试过$state.go('.')了吗?没有。如何访问当前状态?您需要像执行
$route
一样插入$state
服务,然后可以调用此方法。请参阅我所做的文档,$state是未定义的。如果您在模块中正确地插入了ui路由器依赖项,那么您将获得$state对象。通过示例查看此wiki链接,它不应该是$state.go($state.current,null,{reload:true})?