2014-10-29 2 views
6

Sto creando un'applicazione web in Angularjs scrivo codice nel file js separato per log in dal database è è eseguire il caricamento della pagina, ma non innescare il pulsante di scatto, mio codice js è:L'evento ng-clic non viene attivato al clic del pulsante?

var adminModule = angular.module('angApp', []); 
    //Defining a Angular Controller 
    adminModule.controller('AdminCtrl', ['$scope', '$http', 
    `enter code here` function ($scope, $http) { 
    Login(); 
      function Login(U_Name, U_PWD) { 
     debugger; 
     //Defining the $http service for login the admin user 
     $http({ 
      method: 'POST', 
      url: '/Admin/IsAuthenticate', 
      data: { User_Name: U_Name, User_PWD: U_PWD } 
     }).success(function (result) { 

      if (result == true) { 
       alert('user is valid'); 
      } 
      else { 
       alert('unauthorised access!'); 
      } 
     }) 
      .error(function (error) { 
       //Showing error message 
       $scope.status = 'Unable to connect' + error.message; 
      }); 
    } 
     }]); 

e mio punto di vista come quello che sto usando per il legame che utilizzano questo Angularjs qui è un problema sopra il codice sta lavorando al caricamento della pagina, ma non funzionano sul pulsante di scatto, il codice che uso è:

<div class="admin-login" ng-controller="AdminCtrl" ng-app="angApp"> 
    <h2>using angularjs</h2> 
    <input type="text" id="txtUserAng" placeholder="User Name" ng-model="U_Name" /> 
    <input type="password" id="txtPWDAng" placeholder="Password" ng-model="U_PWD" /> 
    <input type="button" id="login" value="login" ng-click="Login()" /> 
</div> 

chiunque soddisfare aiutami cosa mi manca qui quindi non sono in grado di attivare l'evento ng-click sul pulsante clic su grazie in anticipo.

+0

Va $ scope.login = function(), ecc – user2717954

+0

l'ho usato, ma non avrebbe potuto risolvere il mio problema: $ scope.login = funzione Logi n (U_Name, U_PWD) { $ http ({ metodo: 'POST', url: '/ Amministratore/IsAuthenticate', dati: {Nome_utente: U_Name, User_PWD: U_PWD} }). successo (function (risultato) { if (result == true) { alert ('user is valid'); } altro { avviso ('accesso non autorizzato!'); } }) } –

+1

poi mostrare il codice aggiornato – user2717954

risposta

14

La funzione Login deve essere su un ambito. In questo momento, è essenzialmente una funzione privata:

$scope.Login = function() { 
    ... 
} 
+0

sto scrivendo come sopra, ma non è in esecuzione su evento click che sta lavorando bene su carico –

+0

E 'di lavoro sul carico perché il il controller chiama Login() nel suo ambito lessicale quando viene creato. Puoi creare un Plunk o JsFiddle che mostri il tuo problema? Se si definisce la funzione su scope e quindi si fa riferimento nel proprio codice HTML come si ha, dovrebbe funzionare – sma

+0

si prega di controllare su jsfiddle: http://jsfiddle.net/amsharma/pefLcbua/ –

3

assegnare la funzione a una variabile di ambito.

var adminModule = angular.module('angApp', []); 
    //Defining a Angular Controller 
    adminModule.controller('AdminCtrl', ['$scope', '$http', 
    function ($scope, $http) { 

      $scope.Login=function (U_Name, U_PWD) { 
     debugger; 
     //Defining the $http service for login the admin user 
     $http({ 
      method: 'POST', 
      url: '/Admin/IsAuthenticate', 
      data: { User_Name: U_Name, User_PWD: U_PWD } 
     }).success(function (result) { 

      if (result == true) { 
       alert('user is valid'); 
      } 
      else { 
       alert('unauthorised access!'); 
      } 
     }) 
      .error(function (error) { 
       //Showing error message 
       $scope.status = 'Unable to connect' + error.message; 
      }); 
    } 
     $scope.Login(); 
     }]); 

Modificato:

tenta di utilizzare questo codice html, ma io non sono sure.it può essere che sia ng-init e ng controller sono nella stesso carico div e ng controller prima dopo che ng-init:

<div ng-app="angApp"> 
    <div class="admin-login" ng-controller="AdminCtrl" > 
    <h2>using angularjs</h2> 
    <input type="text" id="txtUserAng" placeholder="User Name" ng-model="U_Name" /> 
    <input type="password" id="txtPWDAng" placeholder="Password" ng-model="U_PWD" /> 
    <input type="button" id="login" value="login" ng-click="Login()" /> 
    </div> 
</div> 
+0

sto scrivendo come sopra ma non è in esecuzione sull'evento click funziona bene sul carico –

+0

prova sopra il codice html. Il problema –

+0

è solo con l'evento ng-click funziona bene sul carico ma sull'evento click non va al controller .js –