2016-12-18 21 views
79

私はこの質問をStackoverflowで見ることを期待していましたが、そうはしませんでした。明らかに私はこの問題を抱えている唯一の人です。angularjs 1.6.0(最新のもの)経路が動作しない

私は基本的なプロジェクトを行っていますが、これまでに行ったことのすべてが正しいと思われるにもかかわらず、ルートは機能していないようです。

私は私の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: '/' }); 
}]); 

今、私はちょうどページを訪問したときに、ここで私が得るものですURL:

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

Add quoteボタンIをクリックしたときに、私はこれを取得:ここで問題になることが何

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

を? おかげで助け

+1

おそらく関連? https://github.com/angular/angular.js/commit/aa077e81129c740041438688dff2e8d20c3d7b52 – Claies

答えて

139

によりaa077e8にするために、$場所ハッシュ強打のURLに使用されるデフォルトのハッシュプレフィックスはバン('!')に空の文字列('')から変更されました。あなたが実際にはハッシュ接頭辞を持たないようにしたい場合は、あなたのアプリケーションに構成ブロックを追加することにより、以前の動作を復元することができ

:詳細については、

appModule.config(['$locationProvider', function($locationProvider) { 
    $locationProvider.hashPrefix(''); 
}]); 

参照


私の高い馬に乗って申し訳ありませんが...これはどのように解放されましたか?これは大規模で、バグを壊しています。 — @MiloTheGreat

#14202などによる破壊の変化は、リファレンス仕様として復帰されるべきで、すでに正式#15715

を廃止されました私たちが持っていないので、私はこの問題を閉鎖するつもりですフィードバック。新しいフィードバックを提供できる場合は、この問題を再度開いてください。

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

+12

私の高い馬には申し訳ありませんが... これはどのようにして解放されましたか?これは大規模で、バグを壊しています。 – MiloTheGreat

+2

@MiloTheGreatは、AngularJSチームにあなたのフィードバックをお寄せください。 - https://github.com/angular/angular.js/issues/15715 – georgeawg

3

私はので、私は1.5の角度を使用することにしました1.6.4で動作するようにルーティングすることができませんでした。11とルーティングは正常に機能しますが、後で "/"で機能するときにすべてのルーティングを定義する必要がありました。

古いバージョンの角度に固執すると、神経...

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" 
}); 
}); 
+0

1.5での滞在は、角度2/3/4/5 /等? ngUpgradeは1.5から2+に動作しますか?私はちょっと気分が悪いです。 (ええ、このコメントはほとんど目に見えず、風が吹いています) – eflat

24

は単にhref!を含める:

<body> 
    <a href="#!/add-quote">Add Quote</a> 
    <div ng-view ></div> 
</body> 
+4

ルーティングに関する推奨されていないチュートリアルのあと、時間が無駄になりました。ありがとうございました! –

+0

すべてのジャンパーとハッシュバングについてのジャンパームンプッと私は決して考えなかった "!"参考にならずに登場する違法なキャラクターのようだ。私がただそれを受け入れてそれが存在することを認めれば、問題は解決されているはずです。 – MJoraid

+0

私も...これは私を狂って運転していた! – VictorEspina

関連する問題