我期待在Stackoverflow上看到这个问题,但没有。显然我是唯一一个有这个问题的人,在我看来很常见。
我有一个我正在研究的基本项目,但即使我到目前为止所做的一切似乎都是正确的,但这些路线似乎并不起作用。
我在index.html
文件中有这段html:
<html>
<head ng-app="myApp">
<title>New project</title>
<script src="https://code.angularjs.org/1.6.0/angular.min.js"></script>
<script src="https://code.angularjs.org/1.6.0/angular-route.min.js"></script>
<script src="app.js"></script>
</head>
<body>
<a href="#/add-quote">Add Quote</a>
<div ng-view ></div>
</body>
</html>
这是我的app.js
:
var app = angular.module('myApp', ['ngRoute']);
app.config(['$routeProvider', function ($routeProvider) {
$routeProvider
.when('/add-quote', {
templateUrl: 'views/add_quote.html',
controller: 'QuoteCtrl'
})
.otherwise({ redirectTo: '/' });
}]);
现在,当我访问该页面时,以下是我在网址中的内容:
当我点击Add quote
按钮时,我明白了:
这可能是什么问题? 谢谢你的帮助
答案 0 :(得分:165)
只需在href:
中使用hashbang#!
即可
<a href="#!/add-quote">Add Quote</a>
由于aa077e8,用于$ location hash-bang网址的默认哈希前缀已从空字符串(''
)更改为bang('!'
)。
如果您确实不想使用hash-prefix,则可以通过向应用程序添加配置块来恢复以前的行为:
appModule.config(['$locationProvider', function($locationProvider) {
$locationProvider.hashPrefix('');
}]);
有关详细信息,请参阅
很抱歉让我高高在上,但......这是怎么发布的?这是一个巨大的,破坏bug。 - @MiloTheGreat
由于参考规范已被正式弃用,因此#14202的重大变更应予以恢复#15715
我将关闭此问题,因为我们没有得到任何反馈。如果您能提供新的反馈,请随时重新打开此问题。
- https://github.com/angular/angular.js/issues/15715#issuecomment-281785369
答案 1 :(得分:39)
只需将!
加入href
:
<body>
<a href="#!/add-quote">Add Quote</a>
<div ng-view ></div>
</body>
答案 2 :(得分:5)
我无法在1.6.4中使用路由,因此我决定使用angular 1.5.11并且路由工作正常,但我需要在when(..)函数中定义所有路由并使用尾随&#34 ; /&#34;
如果坚持使用较旧版本的角度是你的选择,那么请考虑它,因为它可以拯救你的神经......
var app = angular.module("myApp", ["ngRoute"]);
app.config(function($routeProvider) {
$routeProvider
.when("/layoutandviewbox", {
templateUrl : "views/layout-and-viewbox.html"
})
.when("/basicshapes", {
templateUrl : "views/basic-shapes.html"
})
.when("/advancedshapes", {
templateUrl : "views/advanced-shapes.html"
})
.when("/groups", {
templateUrl : "views/groups.html"
})
.when("/transformations", {
templateUrl : "views/transformations.html"
})
.when("/effects", {
templateUrl : "views/effects.html"
})
.when("/", {
templateUrl : "views/basic-shapes.html"
});
});
答案 3 :(得分:0)
app.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
$locationProvider.hashPrefix('');
$routeProvider
.when('/add-quote', {
templateUrl: 'views/add_quote.html',
controller: 'QuoteCtrl'
})
.otherwise({ redirectTo: '/' });
}]);
答案 4 :(得分:0)
尝试这个可能会有所帮助...
以html或查看Page
<body>
<a href="#/Home.html">Home</a>
<div ng-view></div>
</body>
在脚本页面中
var app=angular
.module('myModule',['ngRoute'])
.config(function($routeProvider, $locationProvider) {
$routeProvider
.when('/Home', {
templateUrl: 'FolderName/Home.html',
controller: 'homeCtr'
})
$locationProvider.hashPrefix('');
});