簡體   English   中英

控制器上的ng-model值$ scope為“未定義”

[英]ng-model value $scope on controller is “undefined”

在學習Ionic Framework的過程中,我正在學習有關控制器的信息,因此,我為HTML獲得了這個簡單的代碼(以下代碼的上方和下方是ionic生成的代碼,因此我沒有涉及它)

 <div ng-controller="controller">    
  <ion-content>
    <img class="indexImg" src="img/saludoIndex.jpg">
    <br><br>
          <div class="item item-input-inset">    
              <label class="item-input-wrapper">
                  <i class="icon ion-at placeholder-icon"></i>
                  <input type="text" placeholder="Dirección de email" ng-model="mail">
              </label>
          </div>

          <div class="item item-input-inset">    
              <label  class="item-input-wrapper">
                  <i class="icon ion-locked placeholder-icon"></i>
                  <input type="text" placeholder="Contraseña" ng-model="word">
              </label><br>
          </div>

          <div class="col text-center">
              <br><h4><a>¿Olvidaste tu contraseña?</a></h4><br><br><br><br><br>
              <a class="button button-stable button-large" href="templates/Register.html">
              <b>Crear una cuenta gratuita</b></a>
          </div>


  </ion-content>

    <ion-footer-bar class="bar-positive tabs">
        <a class="tab-item">
            <h4 style="color:white;" ng-click="registrar()">INICIAR SESIÓN</h4>
        </a>
    </ion-footer-bar>
</div>

還有我的JavaScript

(function (){

var app = angular.module('starter', ['ionic']);
var app2 = angular.module('nuevo', []);

app.controller('controller', function($scope, $http) {

$scope.registrar = function(){
    $http.post("http://127.0.0.1:8080/php/Conexion.php",{
        correo:$scope.mail, pass:$scope.word,    
    }).success(function(data){
   console.log("exito"); 
   console.log($scope.mail);
    });
}

});

app2.controller('registroUsuario', function($scope, $http){

$scope.nuevoUsuario= function(){
    $http.post("http://127.0.0.1:8080/php/RegistroUsuario.php",{
        tipo:$scope.tipo, cedula:$scope.cedula, nombres:$scope.nombre, apellidos:$scope.apellido, email:$scope.email, pass:$scope.contra, indicativo:$scope.indicativo, numero:$scope.numero,    
    }).success(function(data){
        console.log($scope.cedula);
        console.log($scope.nombre);
        console.log($scope.apellido);
        console.log($scope.email);
        console.log($scope.contra);
        console.log($scope.indicativo);
        console.log($scope.numero);
    });
}

});

app.run(function($ionicPlatform) {
  $ionicPlatform.ready(function() {
    if(window.cordova && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
      cordova.plugins.Keyboard.disableScroll(true);
    }
    if(window.StatusBar) {
      StatusBar.styleDefault();
    }
  });
 })
}())

如您在上面看到的,這是一個基本的登錄表單,我在使用$ scope值的第一個控制器registrar()中遇到ng-model =“ mail”和ng-model =“ word”的問題,該功能轉到我的php文件,那里沒有問題,但是,為了進行測試,我做了控制台打印以查看我的ng-models的值,並且它為我的$ scope.mail值的值拋出了“ exito” firts消息和“ undefined” $ scope.word值的值。

為什么會這樣呢? 我很困惑,因為我的其他控制器工作正常,所以我試圖更改var的值

app = angular.module('starter', ['ionic']);

var app = angular.module('starter', []);

但這也給我一個錯誤。 還嘗試聲明一個具有上述值的var app3,但仍然沒有。

希望您能幫上忙,謝謝您的寶貴時間。

我相信您必須在函數之前或函數內部初始化變量

例如

app.controller('controller', function($scope, $http) {

$scope.mail = '';

$scope.word = '';

$scope.registrar = function(){
    $http.post("http://127.0.0.1:8080/php/Conexion.php",{
        correo:$scope.mail, pass:$scope.word,    
    }).success(function(data)
{
   console.log("exito"); 
   console.log($scope.mail);
    });
}

});

希望有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM