我已切换到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中找不到对应的内容。如何解决这个问题?
好的,当我将$ 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');
内部范围的方法。