Jestem nowy w angular.js
. Próbuję utworzyć dyrektywę, aby dodać tytuły i znaczniki meta w sekcjidokumentów HTML, ale mam pewne problemy.Jak utworzyć dyrektywę kątową w sekcji <head> dokumentu?
Moja index.html
dokument jest następujący:
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<meta charset="UTF-8">
<base href="/">
<seo-title></seo-title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.1/angular.min.js"></script>
<script src="https://code.angularjs.org/1.4.1/angular-route.min.js"></script>
<script src="/incl/js/myApp.js"></script>
</head>
<body >
<div ng-view></div>
</body>
</html>
Moja JavaScript jest:
var app = angular.module ('myApp', ['ngRoute']);
app.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
$routeProvider
.when('/', { templateUrl: 'routes/home.html'})
.when('/pageA', { templateUrl: 'routes/pageA.html'})
.when('/pageB', { templateUrl: 'routes/pageB.html'})
.otherwise({ redirectTo: '/' });
$locationProvider.html5Mode({
enabled: true
});
}]);
app.directive('seoTitle', function() {
return {
restrict: 'E',
template: '<title>{{seo.title}}</title>'
};
});
Kiedy otworzyć inspektora, dyrektywa została przeniesiona do <body>
i nie został zastąpiony szablon:
Jak mogę utworzyć dyrektywy w nagłówku?
P.S .: Przykład kodu byłby świetny!
Dlaczego potrzebowałbyś dyrektywy, aby dodać metatagi? Po prostu wstaw je od początku? Tytuł można łatwo ustawić z kontrolera, który można przypisać do znacznika html, a głowa będzie miała do niego dostęp. – Chrillewoodz
Niektóre strony będą zawierały niektóre metatagi, a inne nie. Poza tym nie chodzi tylko o tytuł, może to być ustawienie metatagu robots na noindex strony, itd ... – JVerstry
Nie jestem pewien, ale myślę, że specyfikacja HTML nie pozwala na niestandardowe elementy, takie jak ' "jako dziecko z' '. Bez względu na to, szablon nie zastąpi elementu dyrektywy - możesz użyć 'replace: true' (ale jest to przestarzałe), lub możesz po prostu użyć dyrektywy atrybutów zamiast' ' –