Я работаю над приложением AngularJS и создал две формы внутри директивы.Я хочу сбросить обе формы $, отправленные с помощью $ setSubmitted (false), однако проблема в том, что я не могу получить два элемента управления одновременно внутри контроллера директивы.
Ссылка на это решение Какобрабатывать несколько форм, представленных на одной странице, используя AngularJS .Тем не менее, решение для контроллера, а не для директивы.
(function () {
'use strict';
angular
.module('app')
.directive('multiForms', multiForms);
function multiForms() {
return {
restrict: "A",
scope: {
},
controller: function ($scope) {
$scope.functions = {
submit1: submit1,
submit2: submit2,
resetForms: resetForms
};
function resetForms() {
$scope.form1.$setSubmitted(false);
$scope.form2.$setSubmitted(false);
}
},
replace: false,
templateUrl: 'pathToTheHtml.html'
}
}
})();
<div>
<form name="form1" ng-submit="functions.submit1()">
<ng-form name="form1">
<input type="text" ng-model="text1">
<button type="submit">Submit1</button>
</ng-form>
</form>
<form name="form-2" ng-submit="functions.submit2()">
<ng-form name="form2">
<input type="text" ng-model="text2">
<button type="submit">Submit2</button>
</ng-form>
</form>
<button ng-click="functions.resetForms()"></button>
</div>
Ожидаемый результат состоит в том, чтобы установить $ submit значение false как для form1, так и для form2.Фактический результат - $ scope.form1 и $ scope.form2 не определены.