IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AngularJS Discussion :

Fichier de configuration AngularJS


Sujet :

AngularJS

  1. #1
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 162
    Par défaut Fichier de configuration AngularJS
    Bonjour,

    j’aimerais savoir comment on peut récupérer un tableau contenu dans un fichier de configuration et l’insérer dans un ensemble à l’intérieur d’un contrôleur AngularJS.

    J’ai besoin de créer un fichier, sûrement appelé config.js (mais je ne sais pas si il doit être « .js » ), et y ajouter une liste de pays que je pourrais rentrer dans un « $scope.pays = [ici la liste des pays]; ». Mais je ne sais comment m’y prendre.

    Avez-vous une idée sur le sujet ?

  2. #2
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    Salut!

    Tu peux créer un fichier JSON et le lire avec le service $http.
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  3. #3
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 162
    Par défaut
    J’ai créé un fichier « config.json », contenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    {
    	"option":[
     
    	{"id": "1", "name": "A", 
          "countries": [{"id": "1", "name": "FR", 
            "servers": [{"id": "1", "name": "Un"}, 
              {"id": "2", "name": "Deux"},
              {"id": "3", "name": "Trois"}]
          }]},
         {"id": "2", "name": "B",
          "countries": [{"id": "1", "name": "FR",
            "servers": [{"id": "1", "name": "Quatre"}, 
              {"id": "2", "name": "Cinq"}, 
              {"id": "3", "name": "Six"}]}, 
          {"id": "2", "name": "DE", 
            "servers": [{"id": "1", "name": "Sept"}, 
              {"id": "2", "name": "Huit"},
              {"id": "3", "name": "Neuf"}]
          }]}
     
          ]
     
      }
    et mon implémentation $http :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    var module = angular.module('kibana.panels.custom', []);
     
      module.controller('custom', ['$scope', '$http', function ($scope, $http, dashboard, querySrv, filterSrv) {
     
         $scope.option = {};
     
         $http({
          method: 'GET',
          url: 'config.json'
         })
     
         .success(function (data, status, headers, config) {
        $scope.option = data;
     
        });
     
          $scope.selectedRequest = {};
          $scope.selectedRequest.option = $scope.option[0];
     
    }]);
    et mon html :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <div ng-controller="custom" >
      <select name="site" ng-model="selectedRequest.site" ng-options="site.name for site in option" required></select>
      <select name="country" ng-model="selectedRequest.country" ng-options="country.name for country in selectedRequest.site.countries" required></select>
      <select name="server" ng-model="selectedRequest.server" ng-options="server.name for server in selectedRequest.country.servers"></select>
      <form>
        <input type="submit" value="OK">
      </form>
    </div>

    Mais ça ne fonctionne pas. Je pense que c’est au niveau du « $scope.option = data; » dans le « .succes » mais c’est aussi dû au « $http ».

  4. #4
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    Citation Envoyé par freddy1492 Voir le message
    Mais ça ne fonctionne pas.
    Est ce que tu as une erreur ou pas de résultat ?

    Est ce que tu passe dans le success ? est-ce que l'instruction $scope.option= data; est exécutée ?
    et est-ce que $scope.option ou data contiennent quelque chose ?
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  5. #5
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 162
    Par défaut
    En fait, je travaille sur un panneau personnalisé de Banana (une fourche de Kibana), et, quand le code est bon, je peut créer ce panneau dans mon interface de panneaux ; dans le cas contraire, il apparaît dans la liste, mais je ne peux pas le créer. Je suppose donc qu’il ne passe pas le succes. En effet, si je supprime
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $http({
          method: 'GET',
          url: 'config.json'
         })
     
         .success(function (data, status, headers, config) {
        $scope.option = data;
     
        });
     
          $scope.selectedRequest = {};
          $scope.selectedRequest.option = $scope.option[0];
    je peux à nouveau créer le panneau.

  6. #6
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    tu m'excusera mais j'ai rien compris à ta réponse...
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  7. #7
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 162
    Par défaut
    Oui, je comprends, le sujet de Banana n’est pas simple (et peu connu).

    En fait ma réponse voulait dire que je ne sais pas où est l’erreur, puisque je peux juste savoir si le programme n’a aucune erreur ou une ou plusieurs (par l’intermédiaire de la possibilité ou non de création de mon panneau). Et là, je ne peux pas le créer, ce qui veut dire qu’il y a une erreur (ou plusieurs) dans cette partie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $http({
           method: 'GET',
           url: 'config.json'
          })
     
         .success(function (data, status, headers, config) {
             $scope.option = data;
     
         });

  8. #8
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    Ajoute la méthode .error pour intercepter l'erreur s'il y en a, ou utilises then qui est mieux !
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  9. #9
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 162
    Par défaut
    Firebug me dit, entre autres « Error: Argument 'custom' is not a function, got undefined » (custom étant le nom de mon panneau) avec les chemins du fichier en dessous.

  10. #10
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    Citation Envoyé par freddy1492 Voir le message
    custom étant le nom de mon panneau
    Visiblement, "custom" est aussi le nom de ton contrôleur...
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  11. #11
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 162
    Par défaut
    Oui, autant pour moi, en fait c’est le nom de mon contrôleur et de mon panneau…

    Le fait est que je dois avoir mal écris la fonction $http. J’en ai vu plusieurs, mais je ne sais pas si je dois utiliser la fonction $http.get, $http.jsonp ou $http.

  12. #12
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    angular.module('myModule').factory('mainInfo', function($http) { 
        return $http.get('content.json').success(function(data) {
            return data;
        });
    });
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  13. #13
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 162
    Par défaut
    Ne puis-je pas la mettre dans mon contrôleur ? car j’ai pas mal de variables dépendantes de ce fichier qui sont dans mon contrôleur (et que je me perd un peu facilement dans l’histoire des communications entre contrôleurs et assimilés).

    J’ai testé ainsi (dans mon contrôleur):
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $scope.factory = function ($http) {
          return $http.get('config.json');
         }
     
     
          $scope.selectedRequest = {};
          $scope.selectedRequest.option = $scope.factory[0];

    Le code ne bogue plus, mais il ne m’affiche pas les résultats dans mon select (sûrement dû à mon « $scope.factory[0] » qui ne devrait pas s’écrire exactement comme ça…).

  14. #14
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    angular.module('app').controller('MyController', MyController);
    MyController.$inject = ["$http"];
    function MyController($http){
        $http.get('content.json').success(function(data) {
            $scope.content = data;
        });
    }
    mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    (function() {
        'use strict';
        angular.module('app').controller('MyController', MyController);
        MyController.$inject = ["$http"];
        function MyController($http){
            var my = this;
            $http.get('content.json').success(function(data) {
                my.content = data;
            });
        }
    })();
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  15. #15
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 162
    Par défaut
    Merci :) je vais lire le fichier « a potasser absolument par tout dev Angular qui se respecte » (message nº2) pour mieux comprendre comment utiliser ces fonctions, qui me font péter un câble, dans mon contrôleur.

  16. #16
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    Citation Envoyé par slim Voir le message
    mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    (function() {
        'use strict';
        angular.module('app').controller('MyController', MyController);
        MyController.$inject = ["$http"];
        function MyController($http){
            var my = this;
            $http.get('content.json').success(function(data) {
                my.content = data;
            });
        }
    })();
    Ceci dit, le $http.get doit être dans un service !
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  17. #17
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Citation Envoyé par freddy1492 Voir le message
    Merci je vais lire le fichier « a potasser absolument par tout dev Angular qui se respecte » (message nº2) pour mieux comprendre comment utiliser ces fonctions, qui me font péter un câble, dans mon contrôleur.
    Déplaces toute ta logique et toutes tes variables dans des services -> problem solved

Discussions similaires

  1. [Débutant] Fichier de configuration
    Par Xavinou dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 26/09/2005, 23h02
  2. Réponses: 4
    Dernier message: 09/09/2005, 12h59
  3. [Log4j] fichier de configuration ou XML ?
    Par nabilblk dans le forum Logging
    Réponses: 2
    Dernier message: 02/09/2005, 16h42
  4. [langage] Lire un fichier de configuration
    Par bobinoo dans le forum Langage
    Réponses: 3
    Dernier message: 04/08/2004, 15h53
  5. Les fichiers de configuration de comptes avec Samba
    Par tomnie dans le forum Réseau
    Réponses: 4
    Dernier message: 18/03/2004, 08h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo