11

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})        
     });
});
1
  • @patxy connection.properties is a file that lives on my server. Commented Sep 30, 2013 at 17:34

3 Answers 3

14

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

Sign up to request clarification or add additional context in comments.

10 Comments

can you provide more detail how i actually get connection.properties?
very nice will test this out shortly.
@Woot4Moo Sorry, gave you some bad info... see my latest update.
kindly tell me where to keep connection.properties file?? do I need to keep in webApp folder or i can keep it in any local folder ??
@Langdon I'm getting a 404 (Not Found) message even if my file is at the main directory.
|
2

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;

Comments

0

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.