2017-04-15 57 views
0

当用户使用“ng-click”进入时,我的范围函数“login()”不起作用,为什么不起作用?请帮忙!AngularJS - 功能不支持ng-click

HTML

<a id="login-button1" class="button button-assertive button-block icon-right ion-log-in" ng-click="login()" >Entrar</a> 

在控制器

.controller('loginCtrl', ['$scope', "Auth", '$state', 
function ($scope, Auth, $stateParams) { 

$scope.login = function() { 

    $signin_email = $scope.userloginForm.email.$modelValue; 
    $signin_password = $scope.userloginForm.password.$modelValue; 

    // sign in 
     Auth.$signInWithEmailAndPassword($signin_email, $signin_password) 
     .then(function(firebaseUser) { 
      //$scope.message = "User created with uid: " + firebaseUser.uid; 
      alert(firebaseUser.email + " logged in successfully!"); 
     }).catch(function(error) { 

      alert(error.message); 
      //$scope.error = error; 
     }); 


    }; 



    }]) 

Funcion即形式:

<form id="login-form1" name="$parent.userloginForm" class="list" > 
     <div class="spacer" style="height: 40px;"></div> 
     <ion-list id="login-list1"> 
     <label class="item item-input" id="login-input1"> 
      <span class="input-label">Email :</span> 
      <input type="text" name="email" ng-model="member.email" placeholder=""> 
     </label> 
     <label class="item item-input" id="login-input2"> 
      <span class="input-label">Senha :</span> 
      <input type="password" ng-model="member.password" placeholder=""> 
     </label> 
     </ion-list> 
     <div class="spacer" style="height: 40px;"></div> 
     <a id="login-button1" class="button button-assertive button-block icon-right ion-log-in" ng-click="login()" >Entrar</a> 
     <a href-inappbrowser="/signup" id="login-button2" class="button button-positive button-block button-clear">Esqueceu sua senha?</a> 
    </form> 
+1

提供更具体的细节......“不工作”告诉我们没有任何价值。花几分钟时间阅读[问] – charlietfl

+0

尝试更新控制器代码中的以下内容。 $ signin_email = $ scope.member.email; $ signin_password = $ scope.member.password; –

+0

仍然不工作@ BanshiL.Dangi –

回答

0

尝试使用$scope.member.email而不是$scope.userloginForm.email.$modelValue$scope.member.password,而不是$scope.userloginForm.password.$modelValuelogin functi on,导致这个属性Angular从表单的输入中写入。当然,你的控制器的顶部,你应该有$scope.member = {}。另外,我认为你的表单的name应该是userloginForm,而不是$parent.userloginForm。还有一两件事 - 如果你没有,你不应该使用ng-click()提交表单,你应该ng-submit="login"表单上并<button id="login-button1" class="button button-assertive button-block icon-right ion-log-in type="submit">Entrar</button>

+0

我必须把scope.member = {}? –

+0

@ Mr.Malaka在$ scope.login ...之前只有一行。 –

+0

那样:$ scope.member { $ scope.login = function(){ ??? –

0

而不是使用$scope.userloginForm.email.$modelValue,你可以直接通过ng-model对象作为login参数功能。

在HTML:

<a id="login-button1" class="button button-assertive button-block icon-right ion-log-in" ng-click="login(member)" >Entrar</a> 

在控制器:

$scope.login = function(member) { 
    var signin_email = member.email; 
    var signin_password = member.password; 
    console.log(signin_email); 
    console.log(signin_password); 
} 

DEMO

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

 
myApp.controller('MyCtrl', function($scope) { 
 
    $scope.login = function(member) { 
 
     var signin_email = member.email; 
 
     var signin_password = member.password; 
 
     console.log(signin_email); 
 
     console.log(signin_password); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="MyCtrl"> 
 
    <form id="login-form1" name="userloginForm" class="list" > 
 
     <div class="spacer" style="height: 40px;"></div> 
 
     <ion-list id="login-list1"> 
 
     <label class="item item-input" id="login-input1"> 
 
      <span class="input-label">Email :</span> 
 
      <input type="text" name="email" ng-model="member.email" placeholder=""> 
 
     </label> 
 
     <label class="item item-input" id="login-input2"> 
 
      <span class="input-label">Senha :</span> 
 
      <input type="password" ng-model="member.password" placeholder=""> 
 
     </label> 
 
     </ion-list> 
 
     <div class="spacer" style="height: 40px;"></div> 
 
     <a id="login-button1" class="button button-assertive button-block icon-right ion-log-in" ng-click="login(member)" >Entrar</a> 
 
     <a href-inappbrowser="/signup" id="login-button2" class="button button-positive button-block button-clear">Esqueceu sua senha?</a> 
 
    </form> 
 
</div>