В моем фактическом js я пытаюсь получить параметры запроса из URL-адреса следующим образом:
let string = $location.url().split('string=')[1];
и приравнивая его к переменной области действия:
$scope.string = string;
loadAnotherFunction(); // called next
и В качестве теста я написал следующее:
let $rootScope, $compile, $location;
beforeEach(angular.mock.module('module.directives'
, function($provide){
let url = '/test/url';
const location = {
url: jasmine.createSpy('url').and.returnValue(url)
};
$provide.value('$location', location);
}));
beforeEach(angular.mock.inject(['$compile', '$location', '$rootScope',
function(_$compile_, _$location_ ,_$rootScope_) {
$compile = _$compile_;
$location = _$location_;
$rootScope = _$rootScope_;
}]));
<!-- another beforeEach which compiles the element & scope and digests and applies scope-->
it('replaces directive correctly', function(){
expect(element.html()).toContain('div');
});
Но я продолжаю получать
ReferenceError: $ location не определено
, и это не так очень объяснительно, поэтому я не уверен, что проблема здесь. Я полагаю, что я ввел это правильно, и у него есть доступ к нему (потому что это вызвало бы ошибку «unknownLocationProvider <- location»), так в чем может быть проблема? </p>