Я искал ответ на этот вопрос и наткнулся на несколько сообщений, но ни один из них у меня не работает.
Я хочу сделать что-нибудь простое. У меня есть кнопка, которая невидима, пока форма не станет грязной. Это отлично работает, если я вручную испачкаю форму. Однако я сохраняю данные. когда форма загружена, сохраненные данные заполняются, но форма не загрязняется, когда данные серверной части обновляются таким образом.
Итак, я решил, что просто установил грязную форму вручную. Но я получаю "неопределенные" ошибки.
$scope.myForm = > undefined
$scope.$myForm => undefined
myForm = > returns the form object
myForm.myField = > returns the field
myForm.myField.$dirty => returns undefined
myForm.myField.$setDirty() = > returns "$setDirty is not a function"
this (inside my controller) = > returns and empty object
Я использую angular 1.6.6. Я читал: Angular .js программно устанавливает грязное поле формы,
Как явно установить текстовое поле в форму испачкать?,
Как установить грязное поле в форме в angularjs 1.3
Моя основная форма:
<div ng-controller="appCtrl">
<form name="myForm">
<input name="myField" ng-model="myField" />
<div ng-click="doSomething()" ng-show="myForm.myField.$dirty">Submit</div>
</form>
</div>
Я добавил плункер, который показывает мою проблему. https://plnkr.co/edit/ZUWywfOj329g6sviHIZf?p=preview