一尘不染

$ route.reload()不适用于ui-router

angularjs

我已切换到ui-router。除一件事外,一切进展顺利。在我的页面上,我有一个选择可以更改应用程序的上下文。无论如何,以前,当更改此上下文时,我正在执行以下代码(特别是
set 方法):

'use strict';
angular.module('main').factory('lacContext', ['$route', function ($route) {
    return {
        set: function (id) {
            sessionStorage.setItem("lac-context", id);
            $route.reload();
        },
        get: function () {
            return sessionStorage.getItem("lac-context");
        }
    };
}])

$route.reload()

在做最重要的事情。它重新加载了页面。但是切换到ui-router后,$ route.reload不会执行任何操作。另外,我在ui-router
API中找不到对应的内容。如何解决这个问题?


阅读 519

收藏
2020-07-04

共1个答案

一尘不染

好的,当我将$ 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');

内部范围的方法。

2020-07-04