0

angular ディレクティブ (1.4) があります。コンポーネント構文 (1.5) に切り替えています。フォームのリセット ボタンがクリックされると、既存のコードは form.$setPristine() を呼び出します。コンポーネントに切り替えてジャスミン テストから呼び出そうとすると、フォーム変数が定義されていません。

  ctrl.resetForm = function () {
    ctrl.employee = {};
    ctrl.myForm.$setPristine();
  };

テスト ファイル:

  $scope = $rootScope.$new();
  $scope.myForm = jasmine.createSpyObj('myForm', ['$setPristine']);

  ctrl = _$componentController_(
  'myComponent', {
    $scope: $scope,
    EmployeeSvc: EmployeeSvc,
    LoggingSvc: LoggingSvc,
    SessionSvc: SessionSvc
  });
  ctrl.$onInit();

form.html

 <form name="myForm" class="form" novalidate>

エラー:

debug.html:38 TypeError: Cannot read property '$setPristine' of undefined
4

1 に答える 1