angular-route1.6.1无法正常运行

angular-route1.6.1 does not work correctly

感谢您的观看! 这是我的问题。

[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>

"custom" 的指令在这里:

<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>

当我点击元素 "a" 时,我浏览器中的 href 是:

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

$location.hash()/checkout

实际上,正确的 href 应该是:

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

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

为什么程序在“!”后面加“#”?

Tx,春节快乐!

谢谢!我已经解决了! 原因是在 1.6.1 版本中路由规则已更改。 url的正确写法是:

href="#!/checkout"

解决这个问题的另一种方法:

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

关注: https://github.com/angular/angular.js/commit/aa077e81129c740041438688dff2e8d20c3d7b52