2016-05-16 97 views
0

我有下面的代碼,我無法觸發 - ng提交或ng點擊此登錄按鈕上的本地onclick函數除外。請讓我knjow如果你知道很好的解決或能夠確定問題:無法提交表格時

<form ng-submit = "login.submitLoginForm(login.user)" novalidate> 
 
       <p> 
 
        <input class="username-email" type="email" name="username" value="" placeholder="Your Email" 
 
        ng-model="login.user.userName"> 
 
       </p> 
 
       <p> 
 
        <input class="password" type="password" name="password" value="" placeholder="Password" 
 
        ng-model="login.user.pwd"> 
 
       </p> 
 
       
 
       <div class="checkbox"> 
 
        <label> 
 
         <input type="checkbox" value="">Remember me</label> 
 
       </div> 
 
       
 
       <p> 
 
        <button class="login" type="submit" name="Login" value="Login">Login</button> 
 
       </p> 
 
      </form>

vm.submitLoginForm = submitLoginForm; 
 

 
     function submitLoginForm(user) { 
 
      // submitLoginForm... 
 
      console.log("UserName..form.." + user.UserName + 'pwd..' + user.pwd); 
 

 
      if(user.userName != '' || user.userName != 'undefined'){ 
 
       vm.user.userName = user.userName; 
 
       console.log("UserName..form.." + user.userName + vm.user.userName); 
 
       ServiceFactory.setUserName(vm.user.userName); 
 
      } 
 
      if(user.pwd != '' || user.pwd != 'undefined'){ 
 
       vm.user.pwd = user.pwd; 
 
       console.log("UserName..pwd.." + user.pwd + vm.user.pwd); 
 
       ServiceFactory.setPwd(vm.user.pwd); 
 
      } 
 

 
      initialize(); 
 
      
 
     };

+0

嘗試連接'LoginCtrlr'在UI層面.. –

+0

'NG-controller'我已經擁有它 - 路徑 - $配置注入= '$ routeProvider', '$ locationProvider','$ httpProvider']; 功能配置($ routeProvider,$ locationProvider,$ httpProvider){$ routeProvider 。當( '/',{ 控制器: 'LoginCtrlr', templateUrl: '視圖/ login.html的', controllerAs: '登錄' }) .otherwise({redirectTo:'/'}); – Smitha

+0

是的,你有它,但只是嘗試附加它一次到UI級別。我之前有這個問題.. –

回答

0

'use strict'; 
 

 
angular 
 
    .module('app', []) 
 
    .controller('LoginCtrlr', LoginCtrlr); 
 

 
function LoginCtrlr() { 
 
    var vm = this; 
 
    vm.user = { 
 
    userName: '', 
 
    pwd: '' 
 
    }; 
 
    
 

 
    vm.submitLoginForm = function submitLoginForm(user) { 
 
    // submitLoginForm... 
 
    console.log("UserName..form.." + user.userName + ' vm userName: ' + vm.userName); 
 
    if (user.userName != '' || user.userName != 'undefined') { 
 
     vm.userName = user.userName; 
 
     console.log("UserName..form.." + user.userName + ' vm. userName: ' + vm.userName); 
 
    } 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app="app"> 
 
    <section class="container" ng-controller="LoginCtrlr as login"> 
 
    <div> 
 
     <p class="or">Or</p> 
 
     <p class="login">your email</p> 
 
     <form novalidate> 
 
     <p> 
 
      <input class="username-email" type="email" name="username" value="" placeholder="Your Email" ng-model="login.user.userName"> 
 
     </p> 
 
     <p> 
 
      <input class="password" type="password" name="password" value="" placeholder="Password" ng-model="login.user.pwd"> 
 
     </p> 
 

 
     <div class="checkbox"> 
 
      <label> 
 
      <input type="checkbox" value="">Remember me</label> 
 
     </div> 
 

 
     <p> 
 
      <button class="login" type="submit" name="Login" value="Login" ng-click="login.submitLoginForm(login.user)">Login</button> 
 
     </p> 
 
     <div>{{ login.message }}</div> 
 
     </form> 
 
    </div> 
 

 
    <p class="note-text-center-xs">By continuing, you accept the terms of Use and Privacy Policy</p> 
 

 
    <div class="login-help-center-xs"> 
 
     <p><a href="#">Forgot your password?</a> 
 
     </p> 
 
    </div> 
 

 
    <p class="no-account" onclick="#">You Don't have an account yet? Sign up</p> 
 
    </a> 
 
    </section> 
 
</div>

我嘗試創建剪切完整的代碼。依賴模塊被刪除,因爲並不是所有人都可以通過代碼來訪問。

我改變什麼:

  • 定義新的「應用」模塊使用[](方括號)
  • 你需要打電話的時候你分配一個對象到模型中的控制器,因爲你定義所有控制器的方法和屬性,而不是使用$ scope。例如:

    <input class="username-email" type="email" name="username" value="" placeholder="Your Email" ng-model="login.user.userName">

+0

它部分解決了我的問題。我可以調用提交現在,但它始終告訴我userName是未定義的。

and console.log(「UserName..form。 。「+ user.UserName +'pwd ..'+ user.pwd); – Smitha

+0

就像錯誤告訴了你。您的userName變量尚未定義。如果你看看我的代碼,我將它改爲字符串文本。 :) – mtamma

+0

我明白了這一點,但它說 - user.userName是未定義,這是我的函數參數。 – Smitha