首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >angularjs 1.6.0 (最新版本)路由不起作用

angularjs 1.6.0 (最新版本)路由不起作用
EN

Stack Overflow用户
提问于 2016-12-19 03:09:07
回答 5查看 42.3K关注 0票数 101

我期待着在Stackoverflow上看到这个问题,但没有,显然我是唯一一个有这个问题的人,在我看来这个问题很常见。

我有一个基本的项目,我正在工作,但路线似乎不工作,尽管我到目前为止所做的一切似乎都是正确的。

我的index.html文件中有这段html:

代码语言:javascript
复制
<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

代码语言:javascript
复制
var app = angular.module('myApp', ['ngRoute']);


app.config(['$routeProvider', function ($routeProvider) {
    $routeProvider
        .when('/add-quote', {
            templateUrl: 'views/add_quote.html',
            controller: 'QuoteCtrl'
        })
        .otherwise({ redirectTo: '/' });
}]);

现在,当我访问该页面时,以下是我在url中得到的内容:

http://localhost:8000/admin#!/

当我点击Add quote按钮时,我会得到如下结果:

http://localhost:8000/admin#!/#%2Fadd-quote

这里会有什么问题呢?感谢你的帮助

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-12-19 05:21:35

只需在href中使用hashbang #!

代码语言:javascript
复制
 <a href="#!/add-quote">Add Quote</a>

由于aa077e8,用于$location散列URL的默认散列前缀已从空字符串('')更改为bang ('!')。

如果您实际上不想使用散列前缀,那么可以通过向应用程序添加一个配置块来恢复之前的行为:

代码语言:javascript
复制
appModule.config(['$locationProvider', function($locationProvider) {
  $locationProvider.hashPrefix('');
}]);

有关详细信息,请参阅

很抱歉对我傲慢自大,但是...这是怎么发布的?这是一个巨大的,崩溃的bug。-

应该恢复#14202版本的破坏性更改,因为参考规范已经正式弃用#15715

我要结束这个问题,因为我们没有任何反馈。如果您能提供新的反馈,请随时重新讨论此问题。

-- https://github.com/angular/angular.js/issues/15715#issuecomment-281785369

票数 173
EN

Stack Overflow用户

发布于 2017-04-23 21:01:15

只需将!包含到href中即可

代码语言:javascript
复制
<body>
    <a href="#!/add-quote">Add Quote</a>
    <div ng-view ></div>
</body>
票数 39
EN

Stack Overflow用户

发布于 2017-04-18 14:55:48

我不能让路由在1.6.4中工作,所以我决定使用angular 1.5.11,路由工作得很好,尽管我需要在when(..)中定义我的所有路由。尾随"/“的函数

如果坚持使用旧版本的angular是一种选择,那么考虑一下它,因为它可能会节省您的神经……

代码语言:javascript
复制
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"
});
});
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41211875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档