2017-01-27 4 views
0

見ていただきありがとうございます! ここに私の質問です。angle-route1.6.1が正しく動作しません

[app.html] 
... 
<custom /> 
... 
<script> 
... 
app.config(["$routeProvider", function ($routeProvider) { 
    $routeProvider.when("/checkout", { 
     templateUrl: "views/checkoutSummary.html", 
    }); 

    $routeProvider.when("/products", { 
     templateUrl: "views/productList.html" 
    }); 

    $routeProvider.otherwise({ 
     templateUrl: "/views/productList.html", 
    }) 
}]) 
... 
</script> 

"カスタム" のためのディレクティブはここにある:私は要素 "A" をクリックすると

<div class="navbar-right"> 
    <div class="navbar-text"> 
     <b>购物车:</b> 
     {{itemCount()}} 个商品, 
     {{total() | currency}} 
    </div> 
    <a href="#/checkout" class="btn btn-default navbar-btn">结算</a> 
</div> 

、私のブラウザのhrefは次のとおりです。

http://localhost:3000/app.html#!#%2Fcheckout

$location.hash() is /checkout

実際には、正しいhrefが次のようになります。

http://localhost:3000/app.html#!/checkout

または

http://localhost:3000/app.html#!%2Fcheckout

プログラムは後ろに "#" を追加することをなぜ "!"?

TxとHappy Chinese New Year!

+0

試して、[の '结算' – Sravan

+0

可能な重複Angular 1.6の単純ハッシュ(#/)の代わりにURLハッシュバング(#!/)プレフィックス(http://stackoverflow.com/questions/41226122/url-hash-bang-prefix-instead-of-simple-ハッシュインアングル1〜6) – Mistalis

+0

[angularjs 1.6.0(最新のもの)ルートが動作しない可能性があります](http://stackoverflow.com/questions/41211875/angularjs-1-6-0-latest-現在のルートが機能していない) – georgeawg

答えて

2

Tx!私はそれを解決しました! バージョン1.6.1ではルートルールが変更されたためです。 URLを書き込むための正しい方法は次のとおりです。

href="#!/checkout"

この問題をsovleするAnnother方法:

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

フォロー: https://github.com/angular/angular.js/commit/aa077e81129c740041438688dff2e8d20c3d7b52

関連する問題