我尝试按照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
时,我没有重定向到登录页面,它基本上只显示我的根目录。
这部分是如何运作的? 它来自根目录还是来自其他地方? 或者我做错了什么?
答案 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>