я написал некоторую логику в моих контроллеров, чтобы вставить мои приложения мета-данные:AngularJS Директива читать текущий templateURL
HTML:
html ng-app="myApp" ng-controller="MainController"
meta name="description" content="{{ seo.metaDescription }}"
JS:
var app = angular.module('myApp', ['ngRoute']);
app.config(["$routeProvider", "$locationProvider", function($routeProvider, $locationProvider){
$routeProvider
.when("/", {
templateUrl: "page1.html",
controller: "Page1Controller"
})
.when("/ledlighting", {
templateUrl: "page2.html",
controller: "Page2Controller"
})
// .otherwise({ redirectTo: '/'})
;
}]);
app.controller('MainController', ["$scope", function($scope) {
$scope.seo = {
metaDescription : ''
};
}]);
app.controller('Page1Controller', ["$scope", function($scope) {
console.log("Greetings from controller 1");
$scope.$parent.seo = {
metaDescription: 'My SEO Meta Description'
};
}]);
Вышеприведенные работы прекрасно, однако, вместо того, чтобы писать значения SEO в каждом контроллере, могу ли я написать директива? Могут ли директивы определять, какой/какой текущий маршрут?
По сути, я хочу заменить свои метатеги на директивы и вставить содержимое/описания на основе текущего маршрута.
Спасибо. Имеет смысл и является простым решением. ЕСЛИ мне нужно идти по директивному маршруту, как это можно достичь? –
Ну, вы можете * написать директиву, но это имеет меньшее значение. В этом случае это не задание для директивы. Проверьте одно возможное решение. http://plnkr.co/edit/6OoIvw1dGvp57Nz31Kt0?p=preview – dfsq
Правильно ли указана ваша вторая ссылка? Кажется, это не директивная версия. –