Javascript 如果$location.path()发生更改,控制器将加载2次
我的网站面临着一个令人不安的问题。我使用angular和typescript进行开发,问题是:当用户成功登录时,我会将其重定向到另一个页面,如“dashboard”或“parentDashboard”。 如果我在Javascript 如果$location.path()发生更改,控制器将加载2次,javascript,angularjs,typescript,Javascript,Angularjs,Typescript,我的网站面临着一个令人不安的问题。我使用angular和typescript进行开发,问题是:当用户成功登录时,我会将其重定向到另一个页面,如“dashboard”或“parentDashboard”。 如果我在parentDashboard或dashboard上的控制器构造函数上放置调试器,我会看到断点被命中两次。我正在使用$location.path('url')重定向他。 只有当我从登录页面重定向他时,才会出现此错误。如果重新加载,例如dashboardpage,该断点将被命中一次 这是路
parentDashboard
或dashboard
上的控制器构造函数上放置调试器
,我会看到断点被命中两次。我正在使用$location.path('url')
重定向他。
只有当我从登录页面重定向他时,才会出现此错误。如果重新加载,例如dashboard
page,该断点将被命中一次
这是路由器
:
.state('login', {
url: '/login',
templateUrl: '/app/login/login.partial.html',
controller: 'LoginController',
controllerAs: 'vm',
ncyBreadcrumb: {
label: 'Login'
},
.state('dashboard', {
url: '/dashboard',
templateUrl: '/app/dashboard/dashboard.partial.html',
controller: 'DashboardController',
controllerAs: 'vm',
}) //etc.....
注意:我在所有页面中都没有data ng controller
标签。我发现对于多个负载来说,这将是一个问题
我不知道该怎么想
如果需要其他源代码,我将编辑我的问题。谢谢
function initRouter($locationProvider: angular.ILocationProvider,
$urlRouterProvider: angular.ui.IUrlRouterProvider,
$stateProvider: angular.ui.IStateProvider) {
$locationProvider.html5Mode(true).hashPrefix('!');
$urlRouterProvider.otherwise('/');
$stateProvider
请注意使用$location.path('url')的尾部斜杠
可以解释这种行为。为什么不使用$state.go('dashboard')。。。我没有任何$state。进入我的登录类型脚本控制器。你使用html5 URL还是带有
#
的URL?你使用的是ui路由器吗?是的,角度ui路由器。我使用app.config文件构造函数进行了编辑。
$location.path('dashboard/')