Как обращаться к именованным формам с синтаксисом "контроллер как"
У меня возникают проблемы со ссылкой на именованные формы в моем контроллере при использовании синтаксиса "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. Есть ли другой способ сделать это в контроллере как синтаксис без использования области?
Ответы
Ответ 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