4 votes

AngularJS et google cloud endpoint : walk through nécessaire

Je suis nouveau dans le domaine d'AngularJS mais j'aime vraiment la façon dont AngularJS fonctionne et je veux le déployer comme côté client pour mon backend Google cloud endpoint. Je rencontre alors immédiatement deux problèmes :

1, Où mettre le maCallback pour qu'il puisse fonctionner dans le contrôleur ANgularJs ?

<script src="https://apis.google.com/js/client.js?onload=myCallback"></script>

2, Comment puis-je faire l'oauth2 ? et comment le contrôleur sait si l'utilisateur est autorisé ?

gapi.auth.authorize({client_id: myCLIENT_ID,
      scope: mySCOPES,.....

Toute aide est appréciée.

5voto

Doug Correa Points 353

Pour le chargement de la bibliothèque Javascript de Google avec AngularJs, la fonction de rappel passée à onLoad de la bibliothèque Javascript de Google est la fonction de démarrage d'AngularJS, comme ceci :

Ceci va à la fin du fichier html :

<script src="https://apis.google.com/js/client.js?onload=startApp">

Ensuite, en <head> section vous bootstrap angular comme ça :

<script type='text/javascript'>

function startApp() {

    var ROOT = 'http://<yourapi>.appspot.com/_ah/api';
    gapi.client.load('myapifromgoogleendpoint', 'version1', function() {
        angular.bootstrap(document, ["myModule"]);
    }, ROOT);
}

</script>

Comme décrit par Kenji, vous devez également supprimer la directive ng-app de votre html.

0voto

Guy Nesher Points 311

Concernant le callback - Pour accéder à un contrôleur Angular, vous devez utiliser un injecteur ( http://docs.angularjs.org/api/AUTO .$injector)

Il suffit de créer une fonction de rappel globale, puis de récupérer la référence au contrôleur de la manière suivante :

window.callbackFunction() {
  injector = angular.element(document.getElementById('YourController')).injector()
  injector.invoke(function ($rootScope, $compile, $document) {
    $rootScope.variable = "stuff you want to inject";
  })
}

Dans cet exemple, j'injecte les données dans le rootScope, mais cela fonctionnera également pour un scope de contrôleur spécifique (il suffit d'injecter $scope à la place).

Je ne peux pas vous aider avec la deuxième question car je ne suis pas familier avec gapi, bien que faire des appels auth2 depuis angularjs soit assez simple.

0voto

juancho Points 52

Vous trouverez ici des détails sur la façon d'utiliser angularjs avec les points de terminaison de google :

https://cloud.google.com/developers/articles/angularjs-cloud-endpoints-recipe-for-building-modern-web-applications?hl=es

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X