ฉันรู้สึกว่า Angular จะเขียน URL ที่ปรากฏในแอตทริบิวต์ href ของ anchor tags ภายใน tempaltes เพื่อให้ทำงานได้ไม่ว่าจะอยู่ในโหมด html5 หรือโหมด hashbang เอกสารสำหรับการให้บริการสถานที่ดูเหมือนว่าจะบอกว่า HTML การเชื่อมโยงการเขียนใหม่จะดูแลสถานการณ์ hashbang ฉันคาดหวังว่าเมื่อไม่ได้อยู่ในโหมด HTML5 จะมีการแทรกแฮชและในโหมด HTML5 พวกเขาจะไม่
อย่างไรก็ตามดูเหมือนว่าไม่มีการเขียนใหม่เกิดขึ้น ตัวอย่างต่อไปนี้ไม่อนุญาตให้ฉันเพียงแค่เปลี่ยนโหมด ลิงก์ทั้งหมดในแอปพลิเคชันจะต้องเขียนใหม่ด้วยมือ (หรือได้มาจากตัวแปรตอนรันไทม์ฉันต้องเขียน URL ทั้งหมดด้วยตนเองขึ้นอยู่กับโหมดหรือไม่?
ฉันไม่เห็นการเขียน url ฝั่งไคลเอ็นต์ที่เกิดขึ้นใน Angular 1.0.6, 1.1.4 หรือ 1.1.3 ดูเหมือนว่าค่า href ทั้งหมดจะต้องได้รับการเติมด้วย # / สำหรับโหมด hashbang และ / สำหรับโหมด html5
จำเป็นต้องกำหนดค่าบางอย่างเพื่อทำให้เกิดการเขียนใหม่หรือไม่? ฉันอ่านเอกสารผิดหรือเปล่า? ทำอย่างอื่นที่โง่?
นี่คือตัวอย่างเล็ก ๆ :
<head>
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.3/angular.js"></script>
</head>
<body>
<div ng-view></div>
<script>
angular.module('sample', [])
.config(
['$routeProvider', '$locationProvider',
function ($routeProvider, $locationProvider) {
//commenting out this line (switching to hashbang mode) breaks the app
//-- unless # is added to the templates
$locationProvider.html5Mode(true);
$routeProvider.when('/', {
template: 'this is home. go to <a href="https://stackoverflow.com/about"/>about</a>'
});
$routeProvider.when('/about', {
template: 'this is about. go to <a href="https://stackoverflow.com/"/>home</a'
});
}
])
.run();
</script>
</body>
ภาคผนวก: ในการอ่านคำถามของฉันอีกครั้งฉันเห็นว่าฉันใช้คำว่า "เขียนใหม่" โดยไม่มีความชัดเจนว่าใครและเมื่อไหร่ที่ฉันต้องการจะเขียนใหม่ คำถามคือเกี่ยวกับวิธีการให้Angularเขียน URL ใหม่เมื่อแสดงเส้นทางและวิธีตีความเส้นทางในรหัส JS อย่างสม่ำเสมอทั้งสองโหมด มันไม่เกี่ยวกับวิธีทำให้เว็บเซิร์ฟเวอร์ทำการเขียนคำร้องขอที่เข้ากันได้กับ HTML5