Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果$location.path()发生更改,控制器将加载2次_Javascript_Angularjs_Typescript - Fatal编程技术网

Javascript 如果$location.path()发生更改,控制器将加载2次

Javascript 如果$location.path()发生更改,控制器将加载2次,javascript,angularjs,typescript,Javascript,Angularjs,Typescript,我的网站面临着一个令人不安的问题。我使用angular和typescript进行开发,问题是:当用户成功登录时,我会将其重定向到另一个页面,如“dashboard”或“parentDashboard”。 如果我在parentDashboard或dashboard上的控制器构造函数上放置调试器,我会看到断点被命中两次。我正在使用$location.path('url')重定向他。 只有当我从登录页面重定向他时,才会出现此错误。如果重新加载,例如dashboardpage,该断点将被命中一次 这是路

我的网站面临着一个令人不安的问题。我使用angular和typescript进行开发,问题是:当用户成功登录时,我会将其重定向到另一个页面,如“dashboard”或“parentDashboard”。 如果我在
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/')