web-dev-qa-db-fra.com

angularjs lu à partir du fichier de propriétés

Dans angularJS, comment puis-je lire une valeur à partir d'un fichier de propriétés? 

connection.properties:  

url="http://localhost:8080"  
user= "me"  
get= "GET"  
post= "POST"

app.js: 

var app = angular.module('testing',[]);  
app.controller('testCtrl',function($scope,$http) {    
     $http({    
        url: connection.properties.url  ,
        method: connection.properties.get,  
        params: {user: connection.properties.user})        
     });
});
11
Woot4Moo

Si connection.properties est un fichier résidant sur votre serveur Web, vous devez simplement procéder comme suit:

var app = angular.module('app', []);

app.controller('test', function ($scope, $http) {
  $http.get('connection.properties').then(function (response) {
    console.log('a is ', response.data.a);
    console.log('b is ', response.data.b);
  });
});

Vous pouvez voir un exemple ici:

http://plnkr.co/edit/3Ne3roFOwcfVmg2mgnUr?p=preview

14
Langdon

Un moyen simple est de 

  1. créer un fichier js nommé

    "config.js" (supposons dans le chemin scripts/config/config.js)

    config.js:

    var test1 = "http://testurl.com" var test2 = "globalconstant"

  2. Dans la page html, incluez ce fichier config.js en haut (au-dessus du contrôleur principal .Js): **<script.. src="./scripts/config/config.js"></st>**

  3. Dans le contrôleur, effectuez les modifications suivantes:

    MainController.js: $ Scope.appUrl = test1; $ Scope.appConstant = test2;

2
Barani r

La réponse de Langdon charge le contenu du fichier de propriétés pour moi, mais la valeur à l'intérieur des propriétés ne m'est pas accessible au format response.data.a et response.data.b etc. et renvoie toujours undefined. Pour que la valeur soit disponible, je dois extraire le contenu du fichier de propriétés et le convertir au format JSON avant de pouvoir l'utiliser. Une modification de la solution proposée ci-dessus serait la suivante:

var app = angular.module('app', []);

app.controller('test', function ($scope, $http) {
    function extractProperties(data){
        const lines = data.split("\n");
        properties = {}

        for (const l of lines) {
            const line = l.trim();
            if (!line || line[0] === '#') {
                continue;
            }
            const keyValue = line.split("=");
            const key = keyValue[0].trim();
            const value = keyValue[1].trim();
            properties[key] = value

        }

        return properties;
    }

    $http.get('connection.properties').then(function (response) {
        const properties = extractProperties(response.data);
        console.log('URL is ', properties.url);
        console.log('User is ', properties.user);
    });
});
0
KlavierCat