Ich muss überprüfen, ob ein Formular in einem Controller gültig ist.
Aussicht:
<form novalidate=""
name="createBusinessForm"
ng-submit="setBusinessInformation()"
class="css-form">
<!-- fields -->
</form>
In meinem Controller:
.controller(
'BusinessCtrl',
function ($scope, $http, $location, Business, BusinessService,
UserService, Photo)
{
if ($scope.createBusinessForm.$valid) {
$scope.informationStatus = true;
}
...
Ich erhalte diesen Fehler:
TypeError: Cannot read property '$valid' of undefined
BusinessCtrl
? kann nicht sagen, ohne mehr zu sehenAntworten:
Versuche dies
im Hinblick auf:
im Controller:
oder
im Hinblick auf:
im Controller:
quelle
$scope.formName.$valid
ergibt sich undefiniert?formName.$valid
kann nur in der Vorlage zugegriffen werden, wenn Sie in der Steuerung zugreifen möchten, müssen Sie ein Objekt dafür$scope.forms.formName
und in der Vorlage erstellen :<form name="forms.formName">
überprüfen Sie diesen KommentarIch habe den Controller aktualisiert auf:
quelle
vm
Ansatz. Können Sie einen Plunker für dieselbe Antwort erstellen, indem Sie den Controller als Syntaxansatz verwenden? Ich kann es nicht tun. Es wird auch für andere hilfreich sein, die nach Antworten im heutigen Kontext suchen. DankeHier ist eine andere Lösung
Legen Sie eine versteckte Bereichsvariable in Ihrem HTML-Code fest, und verwenden Sie sie dann von Ihrem Controller aus:
Hier ist das vollständige Arbeitsbeispiel:
quelle
Das
BusinessCtrl
wird vor demcreateBusinessForm
's initialisiertFormController
. Selbst wenn Sie dasngController
auf dem Formular haben, funktioniert es nicht so, wie Sie es wollten. Sie können dies nichtngControllerDirective
ändern (Sie können Ihre erstellen und versuchen, die Priorität auszutricksen.) So funktioniert anglejs.Siehe dieses plnkr zum Beispiel: http://plnkr.co/edit/WYyu3raWQHkJ7XQzpDtY?p=preview
quelle