Karma hält werfen TypeError: Cannot read property 'originalPath' of undefined
eine Anweisung mit folgenden in der link
Funktion gegeben:Wie Unit-Test Winkel routeChangeSuccess in Directive Link-Funktion?
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';
});
}
}
und Unit-Test:
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');
});
});
Wenn der curr
Weg aus der Verbindung I Object{params: Object{}, pathParams: Object{}, locals: Object{}}
bekommen anmelden. Ich habe versucht, eine falsche Route zu der gesendeten Nachricht zu übergeben, aber nichts hat sich geändert. Wie bekomme ich die erwartete (Standard) Route in die Richtlinie? Ist dies der richtige Weg, um eine Routenänderung innerhalb eines Links zu verfolgen? Meine Vermutung ist, dass ich nur neu in Jasmine und Unit Testing bin.