2016-07-28 6 views
0

У меня угловая форма, которую я передаю в контроллер.Угловая форма Undefined In Controller

Когда я открываю браузер для проверки формы, он не определен. Я попытался изменить имя формы и перемещать тег формы, чтобы заключить в нее все тело. Вот моя форма:

  <form layout-padding id="form-container" ng-controller="RegisterController as RgCtrl" layout="column" ng-cloak name="projectForm"> 
      <div id="content-row-header">What is your email?</div> 
      <md-input-container class="md-block md-input-focused"> 
      <label>Email</label> 
      <input required type="email" name="email" ng-model="email" 
        minlength="10" maxlength="100" ng-pattern="/^[email protected]+\..+$/" /> 
      <div ng-messages="projectForm.email.$error" role="alert"> 
       <div ng-message-exp="['required', 'minlength', 'maxlength', 'pattern']"> 
       Your email must be between 10 and 100 characters long and look like an e-mail address. 
       </div> 
      </div> 
      </md-input-container> 
      <div id="content-row-header">Set a password</div> 
      <md-input-container class="md-block md-input-focused"> 
      <label>Password</label> 
      <input required name="password" ng-model="password"> 
      <div ng-messages="projectForm.password.$error"> 
       <div ng-message="required">This is required.</div> 
      </div> 
      </md-input-container> 
     </form> 

Вот мой вызов функции:

<md-button id="orange-button" ui-sref="app.unauthenticated.purchase.agent" ng-click="doRegistration(projectForm)" flex>Create Account</md-button>

и вот мой контроллер:

(function() { 
    'use strict'; 

    angular 
    .module('app.auth.register') 
    .controller('RegisterController', RegisterController); 

    /** @ngInject */ 
    function RegisterController($scope, $auth, $log, $location,$rootScope,$state,app_auth,$stateParams) { 
    // Data 
    var vm = this; 

    // Methods 
    $scope.doRegistration = function (form) { 
     console.log(form); 
     app_auth.register(form.email.$viewValue,form.password.$viewValue,form.passwordConfirm.$viewValue); 
    }; 


    // $scope.goHome = function() { 
    /
/ $state.go('app.public'); 
    // }; 
    } 
})(); 

прямо сейчас, когда это console.log (форма) пробег, форма не определена

+0

$ state.go (» app.public '); следует прокомментировать? –

+0

только что отправил ответ, вы можете добавить фрагмент 'md-input-container' –

ответ

0

Вы используете директиву . директива scope является различных от контроллеров. Вот почему вы не можете увидеть ссылку на форму.

GO директива реализации и добавить:

scope: { 
    projectForm: '=', 
}, 

ссылка: https://www.sitepoint.com/form-based-directives-angularjs/

-1

Регистрация Контроллер должен был охватывать f orm определение и функции, принятые в качестве аргумента

0

Если у вас есть какая-либо условная директива в виде:

<form name="myForm" ng-if="someVariable"> 

Тогда $scope.myForm будет неопределенной в контроллере ,

Кроме того, вы должны использовать ng-submit.

0

имя атрибута будет связывать форму контроллера к $ объему, поэтому у вас есть name="projectForm" в контроллере вы должны быть в состоянии использовать $scope.projectForm

проверки jsfiddle здесь

https://jsfiddle.net/hurricanew/6tqywue6/

Смежные вопросы