无法使用angular.js ui-router重定向到正确的路径

时间:2015-10-06 09:47:08

标签: javascript angularjs angular-ui-router

我有一个关于在an​​gular.js中重定向路径的问题。我正在解释下面的代码。

  

profileController.js:

if($('#addProfileData')[0].defaultValue=='Update'){
            var updatedata={'colg_name':$scope.colgname,'address':$scope.address,'cont_no':$scope.contno,'profile_id':id};
            console.log('userupdate',userdata);
            $http({
            method: 'POST',
            url: "php/profile/updateProfileData.php",
            data: updatedata,
            headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
        }).then(function successCallback(response){
            alert(response.data);
            $location.path('.profile');
        },function errorCallback(response) {
            alert(response.data);
        });
        }
    }

这里我在成功回调函数中设置了配置文件页面的路径。但是在更新数据后它会重定向到根页面。

  

loginRoute.js:

var Admin=angular.module('Channabasavashwara',['ui.router']);
Admin.config(function($stateProvider, $urlRouterProvider) {
    $urlRouterProvider.otherwise('/');
    $stateProvider
     .state('/', {
            url: '/',
            templateUrl: 'dashboardview/login.html',
            controller: 'loginController'
        })
        .state('dashboard', {
            url: '/dashboard',
            templateUrl: 'dashboardview/dashboard.html',
            controller: 'dashboardController'
        })
        .state('dashboard.profile', {
        url: '/profile?p_i',
        templateUrl: 'dashboardview/profile.html',
        controller: 'profileController'
    })
    .state('dashboard.dept', {
        url: '/dept?d_i',
        templateUrl: 'dashboardview/dept.html',
        controller: 'deptController'
    })
    .state('dashboard.princpal', {
        url: '/princpal?pr_i',
        templateUrl: 'dashboardview/princpal.html',
        controller: 'princpalController'
    })
    .state('dashboard.dept_head', {
        url: '/dept_head?dh_i',
        templateUrl: 'dashboardview/depthead.html',
        controller: 'deptheadController'
    })

})

此处在成功更新数据后,它将重定向到login.html页面。我需要在更新数据后将页面重定向到profile.html页面。请帮助我。

2 个答案:

答案 0 :(得分:0)

尝试用$location.path('dashboard.profile');替换代码行 这将需要你

答案 1 :(得分:0)

您可以使用 $ state 代替$ location,如下所示:

$state.go('dashboard.profile')

另外,不要忘记在控制器中注入$ state服务。

如果你想使用$ location.path,你需要使用url而不是state。