[英]How to read Java property file in AngularJS?
有沒有辦法從位於Web服務器外部的angularjs讀取屬性文件?
就像在java中部署的屬性文件一樣,但我們可以在我們的項目中將這些文件作為filter.properties讀取,這樣任何解決方案都在angularJS中。
我試過這樣但是未定義。
filter.properties:
key1=value1
key2=value2
sampleController.js
var app = angular.module('sampleApp', []);
app.controller('sampleController', function($scope, $http) {
$http.get('filter.properties').then(function (response) {
console.log('a is ', JSON.stringify(response.data.key1));
});
});
有幾種方法可以訪問angularjs中的屬性文件。
與每個文件屬性文件一樣,文件擴展名為.properties。 由於java屬性文件是在一行中用=
分隔的鍵值對。
因此,我們可以通過迭代屬性文件中的每一行並將其與=
符號分開並將其存儲為javascript對象來將屬性文件轉換為javascript對象,這將有助於快速訪問它。
這是它的javascript實現
function extractProperties(propertiesFileContents){
var keyValuePairs =propertiesFileContents.split("\n");
properties ={}
for (i = 0; i < keyValuePairs.length; i++) {
var keyValueArr=keyValuePairs[i].trim().split("=");
var key=keyValueArr[0];
var value=keyValueArr[1];
properties[key]=value
}
return properties;
}
根據你的代碼,我在這里添加一個plunker希望這可以幫助你
Samuel J Mathew的解決方案適用於我,但我必須處理的屬性文件在文件中有多個空行,以及注釋掉的行,有時在=
符號周圍有空格。 所以我必須添加一些檢查來處理這些情況。 修改后的結果是這樣的,希望對使用更復雜的屬性文件的人有用:
function extractProperties(data){
const keyValuePairs = data.split("\n");
properties = {}
for (var i = 0; i < keyValuePairs.length; i++) {
const keyValuePair = keyValuePairs[i].trim();
if (!keyValuePair || keyValuePair[0] === '#') {
continue;
}
const keyValueArr = keyValuePair.split("=");
const key = keyValueArr[0].trim();
const value = keyValueArr[1].trim();
properties[key] = value
}
return properties;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.