У меня есть довольно стандартная директива, которая живет в элементе привязки, которая анализирует строку, чтобы увидеть, соответствует ли текущий маршрут этой ссылке, например.
<a href="/dashboard" data-nav-item="dashboard">Dashboard</a>
Эта директива запускается каждый раз при изменении маршрута (поскольку ссылки могут жить за пределами ng-представления, которое изменяется, поэтому их состояние необходимо обновлять при изменении маршрута), используя $routeChangeStart. Это прекрасно работает в моей основной навигации, которая находится в стандартном представлении, но если я использую эту директиву в файле, включенном в ng (например, в моих поднавигациях), он не сможет запустить какой-либо код внутри обратного вызова routeChangeStart. Вместо этого я попытался внедрить $rootScope, но это не имеет значения. Директива выглядит следующим образом:
angular.module('myApp').directive('navItem', ['$rootScope','$location', function ($rootScope, $location) {
return {
restrict: 'A',
scope: false,
link: function postLink(scope, element, attrs) {
console.log('All directive elements execute this!');
$rootScope.$on('$routeChangeStart', function() {
console.log('ng-included elements work execute this!');
});
}
}
}]);
Как я могу получить доступ к этому событию из директивы в шаблоне ng-include? Директива запускается, но просто не подхватывает это.
Спасибо