ng-route [如何]

时间:2015-12-10 12:08:39

标签: javascript angularjs angularjs-ng-route

我尝试按照ng-route的官方角度文档来解决我丢失的问题。 所以我希望你能告诉我。

我尝试使用2个控制器为现有的简单站点添加路由。一个用于登录,一个用于显示数据。

所以我在main.js中添加了这样的东西:

var historyApp = angular.module('historyApp', ['ngRoute', 'LoginCtrl', 'HistoryCtrl']);

historyApp.config(['$routeProvider',
    function($routeProvider) {
        $routeProvider.
        when('/login', {
            templateUrl: 'templates/login.html',
            controller: 'LoginCtrl'
        }).
        when('/history', {
            templateUrl: 'templates/history.html',
            controller: 'HistoryCtrl'
        }).
        otherwise({
            redirectTo: '/login'
        });
    }]);

其中Loginctrl和HistoryCtrl是非常简单的控制器,如:

historyApp.controller('LoginCtrl', function ($scope, $http){
    $scope.getToken = function(){
        $http({
            method: 'POST',
            url: '../../api/v1/Oauth.php',
            data: { login : $scope.username, password : $scope.password }
        }).then(function successCallback(response) {
            console.log(response);
        }, function errorCallback(response) {
            console.log(response);
        });
    };

});

所以配置设置,控制器和模板存在(肯定), 我还将ng-route.js添加到login.html和history.html

但是,当我打开localhost/myProject/#/login以及localhost/myProject#/login时,我没有重定向到登录页面,它基本上只显示我的根目录。

这部分是如何运作的? 它来自根目录还是来自其他地方? 或者我做错了什么?

编辑: 添加屏幕: enter image description here

1 个答案:

答案 0 :(得分:0)

确保您的网页中有ng-view指令:

<!doctype html>
<html lang="en" ng-app="phonecatApp">
<head>
    ...
    <script src="bower_components/angular/angular.js"></script>
    <script src="bower_components/angular-route/angular-route.js"></script>
    <script src="js/app.js"></script>
    <script src="js/controllers.js"></script>  
</head>
<body>

<div ng-view></div>

</body>
</html>