感谢您的观看!这是我的问题。
[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>
"自定义"指令在这里:
<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,春节快乐!
Tx!我已经解决了!原因是在版本 1.6.1 中路由规则已更改。编写网址的正确方法是:
href="#!/checkout"
的另一种方法:
app.config(['$locationProvider', function($locationProvider) {
$locationProvider.hashPrefix('');
}]);
跟随:https://github.com/angular/angular.js/commit/aa077e81129c740041438688dff2e8d20c3d7b52