Карма продолжает бросать TypeError: Cannot read property 'originalPath' of undefined
дал директиву следующим текстом в функции link
:Как выполнить модульное измерение Угловой маршрутChangeSuccess в функции директивной ссылки?
angular.module('myApp').directive('sidebar', ['$route', function ($route)
{
return {
restrict: 'E',
templateUrl: 'views/sidebar.html',
scope: {
activeNav: '@'
},
link: function (scope, element, attrs) {
scope.$on('$routeChangeSuccess', function (event, curr, prev) {
scope.activeNav = curr.$$route.originalPath || '/about';
});
}
}
и модульного тестирования:
describe('sidebar directive', function() {
var $compile,
$rootScope,
scope,
element;
beforeEach(module('MyApp'));
beforeEach(module('my.templates')); // ng-html2js karma template loader
beforeEach(inject(function(_$compile_, _$rootScope_){
$compile = _$compile_;
$rootScope = _$rootScope_;
scope = $rootScope.$new();
}));
it('defaults to /about route', function() {
element = $compile("<sidebar></sidebar>")(scope);
var linkScope = element.children().scope();
$rootScope.$broadcast('$routeChangeSuccess');
$rootScope.$digest();
expect(linkScope.activeNav).toBe('/about');
});
});
При входе в curr
маршрут внутри звена я получаю Object{params: Object{}, pathParams: Object{}, locals: Object{}}
. Я пробовал передать макет маршрута в переданное сообщение, но ничего не изменилось. Как я могу получить ожидаемый (по умолчанию) маршрут для перехода в директиву? Это даже правильный способ отслеживать изменение маршрута в пределах ссылки? Я предполагаю, что я новичок в Jasmine и модульном тестировании.