【问题标题】:ng-model value $scope on controller is "undefined"控制器上的 ng-model 值 $scope 为“未定义”
【发布时间】:2017-04-01 10:05:54
【问题描述】:

在我对 Ionic 框架的研究中,我正在学习控制器,所以,我得到了我的 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();
    }
  });
 })
}())

正如您在上面看到的,这是一个基本的登录表单,我在我的第一个控制器 registrar() 中使用 $scope 值时遇到了 ng-model="mail" 和 ng-model="word" 的一些问题,函数转到我的 php 文件,那里没有问题,但是,只是为了测试,我做了控制台打印以查看我的 ng-models 的值,它抛出“exito”第一条消息和“未定义”我的 $scope.mail 的值值,与 $scope.word 值相同。

为什么会这样?我很困惑,因为我的其他控制器工作正常,我试图改变 var 的值

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

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

但这也给了我一个错误。还尝试用上面的值声明一个 var app3,但仍然没有。

我希望你能帮我解决这个问题,谢谢你的时间。

【问题讨论】:

    标签: javascript php angularjs ionic-framework


    【解决方案1】:

    我相信你必须在函数之前或函数内部初始化你的变量

    例如

    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);
        });
    }
    
    });
    

    希望有帮助!

    【讨论】:

    • 不,它给我一个空值,而不是输入字段的值。还有其他想法吗? :)
    猜你喜欢
    • 2016-03-15
    • 1970-01-01
    • 1970-01-01
    • 2015-11-06
    • 2014-10-11
    • 2014-04-06
    • 1970-01-01
    • 2016-09-03
    相关资源
    最近更新 更多