Başlık değişiklikleri yapmanın farklı bir yolu. Belki bir fabrika işlevi kadar ölçeklenebilir değil (muhtemelen sınırsız sayfalarla başa çıkabilir) ama anlaması daha kolaydı:
Benim index.html böyle başladı:
<!DOCTYPE html>
<html ng-app="app">
<head>
<title ng-bind-template="{{title}}">Generic Title That You'll Never See</title>
Sonra "nav.html" adlı kısmi yaptım:
<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>
Sonra "index.html" geri döndü ve ng-include ve kısmi benim için ng-view kullanarak nav.html ekledi:
<body class="ng-cloak" ng-controller="MainCtrl">
<div ng-include="'partials/nav.html'"></div>
<div>
<div ng-view></div>
</div>
Ng-cloak fark ettiniz mi? Bu cevapla bir ilgisi yok ama yükleme tamamlanıncaya kadar sayfayı gizliyor, hoş bir dokunuş :) Nasıl yapacağınızı buradan öğrenebilirsiniz: öğren Angularjs - ng-cloak / ng-show elemanları yanıp sönüyor
İşte temel modül. "App.js" adlı bir dosyaya koydum:
(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"});
});
}());
Modülün sonuna doğru bakarsanız, aşağıdakilere dayalı bir yaratık ayrıntı sayfam olduğunu göreceksiniz: id. Çıtır Yaratıklar sayfasında kullanılan bir kısmi. [Corny, biliyorum - belki de her türlü tavuk külçesini kutlayan bir site;) Her neyse, bir kullanıcı herhangi bir bağlantıyı tıkladığında başlığı güncelleyebilirsin, bu yüzden yaratık ayrıntı sayfasına giden ana Çıtır Yaratıklar sayfamda, tıpkı yukarıdaki nav.html'de gördüğünüz gibi $ root.title güncellemesinin gideceği yer:
<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>
Üzgünüm çok rüzgarlı ama çalıştıracak kadar detay veren bir yazı tercih ederim. AngularJS belgelerindeki örnek sayfanın güncel olmadığını ve ng-bind şablonunun 0.9 sürümünü gösterdiğini unutmayın. Bunun o kadar da farklı olmadığını görebilirsiniz.
Sonradan düşünülmüş: bunu biliyorsunuz ama herkes için burada; index.html dosyasının alt kısmında, app.js modülünü içermelidir:
<!-- APP -->
<script type="text/javascript" src="js/app.js"></script>
</body>
</html>