2016-07-21 6 views
0

私は角度指令(1.4)を持っていますが、コンポーネント構文(1.5)に切り替わります。既存のコードは、フォームリセットボタンがクリックされた場合は$ setPristine()という形式を呼び出します。コンポーネントに切り替えてジャスミンテストから呼び出しようとすると、フォーム変数は定義されません。角型を1.5で参照する

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 
+0

テンプレートコードは何ですか?あなたは 'ctrl.myForm = {}'のようなフォームを初期化しようとしましたか? –

+0

もしあなたがプランナーに何かを提供してくれれば助けになります。 –

答えて

0

それが初期化された後にコンポーネントコントローラ上のスパイを設定します。 $スコープが渡される必要はありません。テンプレートで

ctrl = _$componentController_(
'sbEmployeeCreate', { 
    EmployeeSvc: EmployeeSvc, 
    LoggingSvc: LoggingSvc, 
    SessionSvc: SessionSvc 
}); 
ctrl.$onInit(); 
ctrl.myForm = jasmine.createSpyObj('myForm', ['$setPristine']); 

、フォーム名の$ Ctrlキーを使用しています。

<form name='$ctrl.myForm'>