AngularJS проверяет, действительна ли форма в controllerе

Мне нужно проверить, действительна ли форма в controllerе.

Посмотреть:

В моем controllerе:

 .controller( 'BusinessCtrl', function ($scope, $http, $location, Business, BusinessService, UserService, Photo) { if ($scope.createBusinessForm.$valid) { $scope.informationStatus = true; } ... 

Я получаю эту ошибку:

 TypeError: Cannot read property '$valid' of undefined 

Попробуй это

ввиду:

 

в controllerе:

 $scope.submitForm = function(form){ if(form.$valid) { // Code here if valid } }; 

или

ввиду:

 

в controllerе:

 $scope.submitForm = function(formValid){ if(formValid) { // Code here if valid } }; 

Я обновил controller до:

 .controller('BusinessCtrl', function ($scope, $http, $location, Business, BusinessService, UserService, Photo) { $scope.$watch('createBusinessForm.$valid', function(newVal) { //$scope.valid = newVal; $scope.informationStatus = true; }); ... 

Вот еще одно решение

Установите скрытую переменную области видимости в свой html, затем вы можете использовать ее с вашего controllerа:

 {{ formValid = myForm.$valid}} 

Вот полный рабочий пример:

 angular.module('App', []) .controller('myController', function($scope) { $scope.userType = 'guest'; $scope.formValid = false; console.info('Ctrl init, no form.'); $scope.$watch('myForm', function() { console.info('myForm watch'); console.log($scope.formValid); }); $scope.isFormValid = function() { //test the new scope variable console.log('form valid?: ', $scope.formValid); }; }); 
       
userType: Required!
userType = {{userType}}
myForm.input.$valid = {{myForm.input.$valid}}
myForm.input.$error = {{myForm.input.$error}}
myForm.$valid = {{myForm.$valid}}
myForm.$error.required = {{!!myForm.$error.required}}
/*-- Hidden Variable formValid to use in your controller --*/ {{ formValid = myForm.$valid}}

BusinessCtrl инициализируется до createBusinessForm FormController . Даже если у вас есть ngController в форме, вы не будете работать так, как хотите. Вы не можете помочь этому (вы можете создать свой ngControllerDirective и попытаться обмануть приоритет.) Вот как работает angularjs.

См. Этот plnkr, например: http://plnkr.co/edit/WYyu3raWQHkJ7XQzpDtY?p=preview

  • AngularJS, решение и неизвестный поставщик
  • Как связать 2 модели с одним полем ввода в Angular?
  • Форма перехода к директиве
  • AngularJS - сброс значения $ scope.value не изменяет значение в шаблоне (случайное поведение)
  • Как написать службу debounce в AngularJS
  • Как получить предыдущий элемент в ng-repeat?
  • AngularJs ReferenceError: $ http не определен
  • Как выполнить функцию controllerа AngularJS при загрузке страницы?
  • AngularJS - как переопределить директиву ngClick
  • Как я могу проверить события в угловом?
  • Как отменить запрос $ http в AngularJS?
  • Interesting Posts

    Как проверить соответствие типа переменной Тип, хранящийся в переменной

    Запрос Linq, построенный в цикле foreach, всегда принимает значение параметра из последней итерации

    Какую структуру для MVVM следует использовать?

    Получение значения альфа-пикселя для UIImage

    Доступ к файлам свойств программно с помощью Spring?

    ArrayList содержит чувствительность к регистру

    Получить командную строку антивирусных окон

    Как связаны zlib, gzip и zip? Что у них общего и как они отличаются?

    Как я могу изменить количество и размер Linux ramdisks (/ dev / ram0 – / dev / ram15)?

    Захват изображения без предварительного просмотра с помощью API камеры2

    Получить веб-страницу, включая контент AJAX

    Выполнение «прямого» вызова виртуального вызова или интерфейса в C #

    Как посеять для генерации случайных чисел?

    Excel: почему «File-> Save As» не помнит последний каталог, в который вы сохранили файл в

    Использование параметра HeapDumpOnOutOfMemoryError для дампа кучи для JBoss

    Давайте будем гением компьютера.