Đây là một cách khác nhau để thay đổi tiêu đề. Có thể không có khả năng mở rộng như một chức năng của nhà máy (có thể hiểu được các trang không giới hạn) nhưng tôi dễ hiểu hơn:
Trong index.html của tôi, tôi bắt đầu như thế này:
<!DOCTYPE html>
<html ng-app="app">
<head>
<title ng-bind-template="{{title}}">Generic Title That You'll Never See</title>
Sau đó, tôi đã thực hiện một phần gọi là "nav.html":
<div ng-init="$root.title = 'Welcome'">
<ul class="unstyled">
<li><a href="#/login" ng-click="$root.title = 'Login'">Login</a></li>
<li><a href="#/home" ng-click="$root.title = 'Home'">Home</a></li>
<li><a href="#/admin" ng-click="$root.title = 'Admin'">Admin</a></li>
<li><a href="#/critters" ng-click="$root.title = 'Crispy'">Critters</a></li>
</ul>
</div>
Sau đó, tôi đã quay lại "index.html" và thêm nav.html bằng cách sử dụng ng-include và ng-view cho các phần của tôi:
<body class="ng-cloak" ng-controller="MainCtrl">
<div ng-include="'partials/nav.html'"></div>
<div>
<div ng-view></div>
</div>
Chú ý rằng ng-cloak? Nó không liên quan gì đến câu trả lời này nhưng nó ẩn trang cho đến khi tải xong, một cú chạm đẹp :) Tìm hiểu cách thức ở đây: Các yếu tố Angularjs - ng-cloak / ng-show nhấp nháy
Đây là mô-đun cơ bản. Tôi đặt nó trong một tệp có tên "app.js":
(function () {
'use strict';
var app = angular.module("app", ["ngResource"]);
app.config(function ($routeProvider) {
// configure routes
$routeProvider.when("/", {
templateUrl: "partials/home.html",
controller:"MainCtrl"
})
.when("/home", {
templateUrl: "partials/home.html",
controller:"MainCtrl"
})
.when("/login", {
templateUrl:"partials/login.html",
controller:"LoginCtrl"
})
.when("/admin", {
templateUrl:"partials/admin.html",
controller:"AdminCtrl"
})
.when("/critters", {
templateUrl:"partials/critters.html",
controller:"CritterCtrl"
})
.when("/critters/:id", {
templateUrl:"partials/critter-detail.html",
controller:"CritterDetailCtrl"
})
.otherwise({redirectTo:"/home"});
});
}());
Nếu bạn nhìn về phía cuối mô-đun, bạn sẽ thấy rằng tôi có một trang chi tiết critter dựa trên: id. Đó là một phần được sử dụng từ trang Crispy Critters. [Corny, tôi biết - có thể đó là một trang web tôn vinh tất cả các loại cốm gà;) Dù sao, bạn có thể cập nhật tiêu đề khi người dùng nhấp vào bất kỳ liên kết nào, vì vậy trong trang Crispy Critters chính của tôi dẫn đến trang chi tiết critter, đó là nơi cập nhật $ root.title sẽ diễn ra, giống như bạn đã thấy trong nav.html ở trên:
<a href="#/critters/1" ng-click="$root.title = 'Critter 1'">Critter 1</a>
<a href="#/critters/2" ng-click="$root.title = 'Critter 2'">Critter 2</a>
<a href="#/critters/3" ng-click="$root.title = 'Critter 3'">Critter 3</a>
Xin lỗi rất nhiều gió nhưng tôi thích một bài viết cung cấp đủ chi tiết để có được nó và chạy. Lưu ý rằng trang ví dụ trong tài liệu AngularJS đã hết hạn và hiển thị phiên bản 0.9 của ng-bind-template. Bạn có thể thấy rằng nó không khác nhau nhiều.
Suy nghĩ lại: bạn biết điều này nhưng nó ở đây cho bất cứ ai khác; ở dưới cùng của index.html, người ta phải bao gồm app.js với mô-đun:
<!-- APP -->
<script type="text/javascript" src="js/app.js"></script>
</body>
</html>