2016-05-10 7 views
0

Ich möchte die Methode aus dem Controller der angularjs von der Javascript-Methode aufrufen. Also habe ich folgende Funktion benutzt, um anzurufen.AngularJS: Sync Rufen Sie die Methode in eckigen Controller von Javascript

function ValidateLogin(data) { 
    var currentUser = angular.element(document.getElementById('bdyIndex')).scope().SlateProject_GetCurrentUser(); 

    if (currentUser.rows.length > 0) { 
     //doing the stuff 
    } 
} 

-Controller sieht aus wie

folgenden
angular.module('indexApp', []) 
    .controller('indexController', function ($scope, $http) { 
      $scope.SlateProject_GetCurrentUser = function() { 
       var db = app.db; 
       db.transaction(function (tx) { 
       tx.executeSql("SELECT * FROM dbSlateProject WHERE ACTIVE = 1", [], 
       function (tx, e) { 
        console.log('Fetched Active Slate Project!') 
        return e; 
       }, 
       function (tx, e) { 
        alert(e.message); 
       }); 
      }); 
     } 
}); 

Also, bevor das Ergebnis von "SlateProject_GetCurrentUser" bekommen, die, wenn die Bedingung ausgeführt wird. So gibt es einen Fehler wie "Kann nicht lesen 'Zeilen von undefined". Wie können wir die Methode sync aufrufen?

Antwort

1

Controller:

angular.module('indexApp', []) 
.controller('indexController', function ($scope, $http) { 
     $scope.SlateProject_GetCurrentUser = function (callback) { 
      var db = app.db; 
      db.transaction(function (tx) { 
      tx.executeSql("SELECT * FROM dbSlateProject WHERE ACTIVE = 1", [], 
      function (tx, e) { 
       console.log('Fetched Active Slate Project!') 
       callback(tx) // is `tx` current user? replace it with current user if no 
      }, 
      function (tx, e) { 
       alert(e.message); 
      }); 
     }); 
    } 
}); 

Und Sie können es wie folgt zugreifen:

function ValidateLogin(data) { 
    var currentUser = angular.element(document.getElementById('bdyIndex')).scope().SlateProject_GetCurrentUser(function(currentUser){ 
     if (currentUser.rows.length > 0) { 
     //doing the stuff 
     } 
    }); 
} 
+0

Dank für das Ihnen helfen. Kannst du das bitte erklären und wie können wir Argumente an diese Funktion übergeben? –