Berikut cara berbeda untuk melakukan perubahan judul. Mungkin tidak scalable seperti fungsi pabrik (yang bisa menangani halaman tanpa batas) tetapi lebih mudah bagi saya untuk mengerti:
Di index.html saya, saya mulai seperti ini:
<!DOCTYPE html>
<html ng-app="app">
<head>
<title ng-bind-template="{{title}}">Generic Title That You'll Never See</title>
Lalu saya membuat sebagian yang disebut "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>
Kemudian saya kembali ke "index.html" dan menambahkan nav.html menggunakan ng-include dan ng-view untuk parsial saya:
<body class="ng-cloak" ng-controller="MainCtrl">
<div ng-include="'partials/nav.html'"></div>
<div>
<div ng-view></div>
</div>
Perhatikan bahwa ng-jubah? Tidak ada hubungannya dengan jawaban ini tetapi menyembunyikan halaman sampai selesai memuat, sentuhan yang bagus :) Pelajari caranya di sini: Angularjs - ng-cloak / ng-show elements blink
Inilah modul dasar. Saya memasukkannya ke dalam file bernama "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"});
});
}());
Jika Anda melihat ke bagian akhir modul, Anda akan melihat bahwa saya memiliki halaman detail makhluk berdasarkan: id. Ini sebagian yang digunakan dari halaman Crispy Critters. [Corny, saya tahu - mungkin ini adalah situs yang merayakan semua jenis nugget ayam;) Bagaimanapun, Anda dapat memperbarui judul ketika pengguna mengklik tautan apa pun, jadi di halaman Crispy Critters utama saya yang mengarah ke halaman detail makhluk, di situlah pembaruan $ root.title akan muncul, seperti yang Anda lihat di nav.html di atas:
<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>
Maaf sangat berangin, tetapi saya lebih suka posting yang memberikan detail yang cukup untuk menjalankannya. Perhatikan bahwa halaman contoh dalam dokumen AngularJS kedaluwarsa dan menunjukkan versi ng-bind-template versi 0.9. Anda dapat melihat bahwa itu tidak jauh berbeda.
Setelah Pikir: Anda tahu ini tetapi ada di sini untuk orang lain; di bagian bawah index.html, seseorang harus menyertakan app.js dengan modul:
<!-- APP -->
<script type="text/javascript" src="js/app.js"></script>
</body>
</html>