在angularJS中,如何从属性文件中读取值?
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})
});
});
答案 0 :(得分:14)
如果connection.properties
是您的网络服务器上的文件,那么您只需要这样做:
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);
});
});
你可以在这里看到一个例子:
答案 1 :(得分:2)
简单的方法是
创建一个名为
的js文件“config.js”(假设在路径scripts / config / config.js中)
config.js:
var test1 =“http://testurl.com” var test2 =“globalconstant”
在html页面中,在顶部包含此config.js(在主页上方
controller.js):**<script..
src="./scripts/config/config.js"></st>**
在控制器中进行以下更改:
MainController.js: $ scope.appUrl = test1; $ scope.appConstant = test2;
答案 2 :(得分:0)
Langdon的答案为我加载了属性文件的内容,但是我无法以response.data.a
和response.data.b
等格式访问属性中的值,并且始终返回undefined
。为了使值可用,我必须提取属性文件的内容并将其转换为JSON格式,然后才能使用它。对上述提议的解决方案的修改如下:
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);
});
});