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

时间:2017-01-31 11:51:47

标签: javascript angularjs typescript

我正面临着与我的网站发生分歧的问题。我使用angular和typescript进行开发,问题是:当用户成功登录时,我会将他重定向到另一个页面,例如"仪表板" ,或者" parentDashboard"。 如果我在debuggerparentDashboard上的控制器构造函数上放置dashboard,我会看到断点被击中2次。我使用$location.path('url')重定向他。 只有当我从登录页面重定向他时才会出现此错误。如果我重新加载,例如dashboard页面,该断点将被击中一次。

这是router

.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

1 个答案:

答案 0 :(得分:0)

请注意使用$ location.path('url')跟踪斜杠。

$location.path('dashboard/')

可以解释这种行为。