Angularjs $route.reload()不适用于ui路由器

Angularjs $route.reload()不适用于ui路由器,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我换成了电视。除了一件事,一切都很顺利。在我的页面上,我有一个选择,可以更改应用程序的上下文。无论如何,在前面,当这个上下文被更改时,我正在执行这个代码(特别是,set方法): 及 他在做最重要的事情。它重新加载了页面。但在切换到ui路由器后,$route.reload不起任何作用。我也没有在ui路由器API中找到对应的。如何解决这个问题?好的,当我将$state注入控制器时,它会工作 但当将其注入服务(如代码片段)时,$state当然是未定义的 虽然 $state.go('.') 没有工作,

我换成了电视。除了一件事,一切都很顺利。在我的页面上,我有一个选择,可以更改应用程序的上下文。无论如何,在前面,当这个上下文被更改时,我正在执行这个代码(特别是,set方法):


他在做最重要的事情。它重新加载了页面。但在切换到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})?