AngularJS子目录路由不工作,以&lt;碱基GT;应用标签 [英] AngularJS subdirectory routing not working, with <base> tag applied
问题描述
我有一个非常简单的模板AngularJS,我试图让路由的工作,但是当我加载页面,我只是看到从我的 index.html的$ h1标签C $ C>。
I've got an incredibly simple AngularJS template, I'm trying to get routing to work but when I load the page I'm just seeing the H1 tag from my index.html
.
我的应用程序是一个子目录, /角路由/
,我知道谐音存在,我可以访问 / angular-路由/谐音/ interest.html
和页面呈现罚款。
My app is in a sub directory, /angular-route/
, and I know that the partials exist, I can visit /angular-route/partials/interest.html
and the page renders fine.
我错过了一些非常基本的在这里?
Have I missed something really basic here?
<html>
<head ng-app="myApp">
<title>AngularJS Routing</title>
<base href="/angular-route/" />
</head>
<body>
<h1>AngularJS Routing</h1>
<div ng-view></div>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.min.js"></script>
<script>
'use strict';
var myApp = angular.module('myApp', []).
config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/interest', {
templateUrl: 'partials/interest.html',
controller: 'InterestCtrl'
}).
when('/catalogue', {
templateUrl: 'partials/catalogue.html',
controller: 'CatalogueCtrl'
}).
otherwise({redirectTo: '/interest'});
}]);
myApp.controller('InterestCtrl', function($scope, $routeParams) {
console.log('InterestCtrl');
});
myApp.controller('CatalogueCtrl', function($scope, $routeParams) {
console.log('CatalogueCtrl');
});
</script>
推荐答案
除了基本的标签,您的会需要,你也把错误的元素在NG-应用指令(头
)。在您的code,应用程序仅在头中初始化。在HTML的其余部分被忽略角
Beside the base tag, which you will need, you've also placed the ng-app directive on wrong element (head
). In your code, the Application is initialized only inside the header. Rest of the HTML is ignored by Angular.
<html ng-app="myApp">
<head>
<title>AngularJS Routing</title>
<script>
document.write('<base href="' + document.location + '" />');
</script>
<script type="text/ng-template" id="partials/interest.html">
<h2>Inereset</h2>
</script>
<script type="text/ng-template" id="partials/catalogue.html">
<h2>Catalogue</h2>
</script>
</head>
<body>
<h1>AngularJS Routing</h1>
<ul>
<li><a href="#/interest">Interest</a></li>
<li><a href="#/catalogue">Catalogue</a></li>
</ul>
<div ng-view></div>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.min.js"></script>
<script>
'use strict';
var myApp = angular.module('myApp', []).
config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/interest', {
templateUrl: 'partials/interest.html',
controller: 'InterestCtrl'
}).
when('/catalogue', {
templateUrl: 'partials/catalogue.html',
controller: 'CatalogueCtrl'
}).
otherwise({redirectTo: '/interest'});
}]);
myApp.controller('InterestCtrl', function($scope, $routeParams) {
console.log('InterestCtrl');
});
myApp.controller('CatalogueCtrl', function($scope, $routeParams) {
console.log('CatalogueCtrl');
});
</script>
</body>
</html
这篇关于AngularJS子目录路由不工作,以&lt;碱基GT;应用标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!