Подтвердить что ты не робот

Как обращаться к именованным формам с синтаксисом "контроллер как"

У меня возникают проблемы со ссылкой на именованные формы в моем контроллере при использовании синтаксиса "controller as" в angularjs. Например, учитывая следующий HTML:

<div ng-controller="MyController as ctl">
  <form role="form" name="newItemForm">
    <input type="text" id="firstName" ng-model="ctl.firstName"/>
  </form>
</div>

В контексте контроллера

function MyController() {
  var self = this;
  console.log(self.newItemForm);
}

self.newItemForm - undefined. Если бы я использовал соглашение $scope, я мог бы ссылаться на $scope.newItemForm. Есть ли другой способ сделать это в контроллере как синтаксис без использования области?

4b9b3361

Ответ 1

Измените свой HTML на это:

<div ng-controller="MyController as ctl">
  <form role="form" name="ctl.newItemForm">
    <input type="text" id="firstName" ng-model="ctl.firstName"/>
  </form>
</div>

Тогда вы сможете получить доступ к именованной форме, как и ожидалось в вашем контроллере, без ввода $scope. Здесь была найдена эта информация: http://www.technofattie.com/2014/07/01/using-angular-forms-with-controller-as-syntax.html