AngularJs - 无法读取属性' $ valid'未定义的

时间:2017-04-14 21:22:31

标签: angularjs

我已经阅读了如何处理表单是有效还是无效的问题,而且我无法弄清楚为什么我无法使代码正常工作。

我的Html表单

 <form name="signupForm" ng-submit="submitRegistration(signup)" ng-init="signup = {}" novalidate>
<input type="email" placeholder="Email" name="email" ng-model="signup.email"required></input>
<input type="password" placeholder="Password" name="password" ng-model="signup.password"required></input>

          <button type="submit" class="button button-block button-balanced">
                Registrarme!
          </button>
</form>

我的控制器

$scope.submitRegistration = function(signupForm){
        debugger;
        $scope.msg = {};
        if ($scope.signupForm.$valid){
//something}else{
console.log('INVALID')
}

我尝试了$ scope.signupForm。$ valid和signupForm。$ valid ...我都未定义。 我怎样才能在控制器端执行此操作?

编辑这是我的完整代码(是注册表,我使用的是Ionic框架)

<ion-view view-title="Registrate!">
<ion-content class="padding">

<h1 class="general-title">BuenjugadorApp</h1>

    <button class="button button-block facebook-button icon-left ion-social-facebook" ng-click="facebookSignup()">Registrate con Facebook</button>

    <button class="button button-block button-balanced" ng-click="nosotros = true">Registrate con Nosotros</button>

 <div class="error-notice" ng-if="msg.error">
  <span>¡Ocurrió un error! Vuelve a intentarlo.</span>
 </div>
  <div class="error-notice" ng-if="msg.required">
  <span>¡Todos los campos deben ser completados!</span>
 </div>
  <div class="error-notice" ng-if="msg.different_passwords">
  <span>¡Las contraseñas ingresadas no coinciden!</span>
 </div>

 <div class="error-notice" ng-if="msg.too_big_password">
  <span>¡Las contraseña es demasiado larga, no puede superar los 12 caracteres!.</span>
 </div>
<br>

<div >
<form name="signupFormulario" ng-submit="submitRegistration(signupForm)" ng-init="signupForm = {}" novalidate>
  <div class="list">
       <label class="item item-input item-floating-label">
        <span class="input-label">Email</span>
        <input type="email" placeholder="Email" name="email" ng-model="signupForm.email"required>
      </label>
      <label class="item item-input item-floating-label">
        <span class="input-label">Nombre</span>
        <input type="text" placeholder="Nombre" name="nombre" ng-model="signupForm.nombre"required>
      </label>
       <label class="item item-input item-floating-label">
        <span class="input-label">Apellido</span>
        <input type="text" placeholder="Apellido" name="apellido" ng-model="signupForm.apellido"required>
      </label>
      <label class="item item-input item-floating-label">
        <span class="input-label">Contraseña</span>
        <input type="password" placeholder="Contraseña" name="password" ng-model="signupForm.password"required>
      </label>
       <span class="advise">La contraseña debe ser mayor o igual a 6 caracteres.</span>
       <label class="item item-input item-floating-label">
        <span class="input-label">Repetir Contraseña</span>
        <input type="password" placeholder="Repetir Contraseña" name="password" ng-model="signupForm.password_confirmation"required>
      </label>
            <label class="item item-input item-floating-label">
        <span class="input-label">Edad</span>
        <input type="number" placeholder="Edad" name="edad" ng-model="signupForm.edad" min="10" max="99" required>
      </label>
        <label class="item item-input item-floating-label">
          <span class="input-label">Teléfono</span>
          <input type="number" placeholder="Teléfono"  name="telefono" max="999999999999999" ng-model="signupForm.telefono" required>
        </label>
        <span class="advise">Debes ingresar tu número para que los jugadores puedan contactarse mejor con vos.</span>

      <label class="item item-input">
      </label>
      <label class="item item-input item-select">
          <div class="input-label">
            Tu Equipo
          </div>
        <select ng-model="signupForm.equipo2" ng-init="signupForm.equipo2 = {}"  required>
            <option ng-value="equipo" ng-repeat="equipo in equipos">{{equipo.nombre}}</option>
          </select>
        </label>

       <label class="item item-input item-select">
          <div class="input-label">
            ¿De qué jugás?
          </div>
        <select name="posicion" ng-model="signupForm.posicion" required>
            <option ng-value="posicion.nombre" ng-repeat="posicion in posiciones">{{posicion.nombre}}</option>
          </select>
        </label>

        <label class="item item-input item-select">
          <div class="input-label">
            ¿De dónde sos?
          </div>
        <select name="lugar" ng-model="signupForm.provincia" ng-change="cambiovalor(signupForm.provincia)" required>
            <option ng-value="prov" data-ng-repeat="(prov, ciudadesss) in complejos">{{prov}}</option>
          </select>
        </label>

        <label class="item item-input item-select">
          <div class="input-label">
            ¿Ciudad?
          </div>
        <select ng-disabled="!signupForm.provincia" ng-model="signupForm.ciudad" name="city" required>
            <option ng-value="ciudad" data-ng-repeat="ciudad in ciudades">{{ciudad}}</option>
          </select>
        </label>


          <button type="submit" class="button button-block button-balanced">
                Registrarme!
          </button>
           <div class="centered">
               <a ng-href="#/login">Ya tengo una cuenta.</a>
           </div>
  </div>
</form>
</div>
</ion-content>
</ion-view>

0 个答案:

没有答案