次のコードがあります。
<div modal="modal.shouldBeOpen" close="close()" options="opts">
<div class="modal-body">
<form novalidate name="itemForm" style="margin-bottom: 0px;">
含まれているファイル modal.html に含まれているもの
<div data-ng-controller="AdminController">
<ng-include src="'/Content/app/admin/partials/grid-subject.html'"></ng-include >
<ng-include src="'/Content/app/admin/partials/modal.html'"></ng-include>
</div>
私の AdminController コントローラーでは、次のコードを使用してフォームを元の状態にリセットしようとしています。
$scope.itemForm.$setPristine();
これを行うと、「itemForm」が未定義であることがわかります。
フォームの内容を元の状態に設定する方法はありますか。これはスコープの問題だと思いますが、修正方法がわかりません。2番目のインクルードを削除してコードを直接貼り付けるという1つの解決策を試しました。このソリューションは機能します。
ただし、コードを再利用できるようにしたいので、modal.html のインクルードでこれを実行できるようにしたいと考えています。
これを行う理由は、modal.html に次のようなものがあるためです。
<button
class="btn float-right"
data-ng-disabled="itemForm.$pristine"
data-ng-click="modalReset()"
data-ng-show="modal.resetButton">
Reset</button>
</form>
したがって、実際には itemForm の内部にいて、内部のボタンから $pristine に設定したいと考えています。