簡體   English   中英

如何在AngularJS中讀取Java屬性文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM