20

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

4

1 に答える 1