如何在我的angularJs webApp中使用$ routeProvider而不是$ stateProvider,哪一个更好用?

时间:2016-01-14 07:51:28

标签: angularjs

我正在为我的webApp使用angularJs,但我在任何地方使用$stateProvider来定义state.so现在我想使用$routeProvider而不是$stateProvider。以及我如何更改路由?是$ location改善路径好吗? 这是我的$routeProvider

试用代码
angular.module("angular.states", [])
    .config(['$routeProvider', '$locationProvider', '$stateProvider'], function ($stateProvider, templateRoot, $routeProvider) {
        $routeProvider.when('/login?username&message&error', {
            'templateUrl': '/templates/login.html',
            'controller': 'LoginController'
        });
        $routeProvider.when('/logout', {
            'templateUrl': '/templates/logout.html',
            'controller': 'LogoutController'
        });
    })
    .controller('LoginController', function (UserService, $scope, $state, $stateParams, AuthFactory, $timeout, $location) {
        $scope.login = function (username, password) {
            UserService.login({
                'username': username,
                'password': password
            });
        };
    })
    .controller('LogoutController', function (UserService, $scope, $location) {
        $scope.logout = function () {
            UserService.logout({}, function () {
                $location.path("/login", {
                });
            });
        };
    });

我不确定$routeProvider,所以请告诉我如何使用它

1 个答案:

答案 0 :(得分:2)

您应该使用$ stateProvider而不是$ routeProvider。因为您可以使用$ stateProvider轻松更改状态。 &安培;如果你使用$ routeProvider你需要使用location,path,它的url&所有, 您不能将路线与彼此联系起来,例如谁是父母,谁是孩子。 所以$ stateProvider总是更好用。 使用$ stateProvider: $ stateProvider.state(' login',{         ' url':' / login         ' templateUrl':' /templates/login.html',         '控制器':' LoginController'     }); 在这里你可以简单地用给定的URL改变你的状态,你不需要找到路径。