テンプレートを挿入してからコンパイルするコードをスペック ファイルで繰り返し続けています。このコードをヘルパー関数に抽出して、物事を DRY に保ちました。問題は to を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
ブロックにジャンプすると、すべてが未定義になります。複数の を抽出できますbeforeEach
か? これを行う正しい方法は何ですか?また、ジャスミンのヘルパー関数を配置する適切な場所はどこですか?また、それはどのように行われますか?