简体   繁体   中英

angularjs read from properties file

In angularJS how can I read a value from a properties file?

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})        
     });
});

If connection.properties is a file that lives on your web server, then you simply need to do this:

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);
  });
});

You can see an example here:

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

Simple way is to

  1. create a js file named

    "config.js" (lets assume in the path scripts/config/config.js)

    config.js:

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

  2. In the html page include this config.js at the top (above the main controller.js): **<script.. src="./scripts/config/config.js"></st>**

  3. In the controller make the following change:

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

Langdon's answer loads the content of the properties file for me but the value inside the properties are not accessible to me in the format of response.data.a and response.data.b etc and always returns undefined . For the value to be available to me I have to extract the content of the properties file and to turn them into JSON format before I can use it. A modification of the above proposed solution would be such:

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);
    });
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM