Я продолжаю повторять некоторый код в моем spec файле, который вводит шаблон, а затем компилирует его. Я извлек этот код в вспомогательную функцию, чтобы держать вещи сухими. Я считаю, что проблема заключается в попытке установить beforeEach в вспомогательную функцию. Вот фрагмент моего кода, который я пытаюсь абстрагироваться в функции:
beforeEach(module('app/views/header.html'));
beforeEach(inject(function($templateCache, $compile, $rootScope) {
template = $templateCache.get('app/views/header.html');
$templateCache.put('views/header.html', template);
var directive = angular.element('<clinical-header></clinical-header>');
element = $compile(directive)($rootScope);
$rootScope.$digest();
}));
Вот вспомогательная функция, которую я создал:
var setupTemplate = function(templateName, element) {
beforeEach(module('app/views/' + templateName));
beforeEach(inject(function($templateCache, $compile, $rootScope) {
var template = $templateCache.get('app/views/' + templateName);
$templateCache.put('views/' + templateName, template);
var directive = angular.element(element);
element = $compile(directive)($rootScope);
$rootScope.$digest();
}));
И теперь это вызов вспомогательной функции:
setupTemplate('header.html', '<clinical-header></clinical-header>');
В конце моей вспомогательной функции все выглядит хорошо, но когда я перехожу в блок it, все это undefined. Могу ли я извлечь несколько beforeEach? Каков правильный способ сделать это? Кроме того, где подходящее место для размещения функций-жасминовых помощников и как это делается?