Угловая форма ссылки с 1,5

0

У меня есть угловая директива (1.4). Я перехожу к синтаксису компонента (1.5). Существующий код вызывает форму. $ 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
  • 0
    Какой код шаблона? и вы пытались инициализировать форму, как ctrl.myForm = {}
  • 0
    Если вы можете предоставить что-то в plunker, будет полезно.
Теги:
angularjs-components
angularjs-forms

1 ответ

0
Лучший ответ

Установите шпион на компонентный контроллер после его инициализации. $ scope не нужно передавать.

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

В шаблоне используйте $ ctrl для имени формы.

<form name='$ctrl.myForm'>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню