我目前正在尝试配置AngularJS应用。经过一番搜索后,我在官方 angularjs.com 页面找到了this idea。这似乎是在运行时配置应用程序的一种非常好的方法。在我的情况下,我想从一个简单的.xml, .properties
中读取一些参数和路径值,或者使用配置块中的一些javascript来比较。但我不知道如何使用这个概念实现我的想法,也不知道这是否是使用外部文件配置应用程序解决问题的好方法。
为了更好地演示,我构建了一个简单的应用程序作为工作基础。最后,我想使用外部文件配置CONFIG.PATH.BASE
和CONFIG.PATH.REST
的值
我很确定你们那里的人能够帮助我。
所以这是非常简单的代码:
'use strict';
var app = angular.module('ConfigTestApp', []);
var CONFIG = CONFIG || {};
CONFIG.PATH = {
BASE: "localhost:8080",
REST: "/sample/api/rest"
}
app.controller('ShowConfigController', ['$scope', function($scope){
var vm = this;
vm.greeting = "Basic Configuration";
vm.basePath = CONFIG.PATH.BASE;
vm.restPath = CONFIG.PATH.REST;
var d = new Date();
vm.timestamp = d.getTime();
}]);
<!doctype html>
<!--[if lt IE 7]>
<html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>
<html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>
<html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!-->
<html class="no-js"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>HtmlFrontendBase</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width">
</head>
<body data-ng-app="ConfigTestApp" class="indexpage">
<div ng-controller="ShowConfigController as ShowConfCtrl">
<h1>{{ShowConfCtrl.greeting}}</h1>
BasePath: {{ShowConfCtrl.basePath}}<br/>
RestPath: {{ShowConfCtrl.restPath}}<br/>
Timestamp: {{ShowConfCtrl.timestamp}}<br/>
</div>
<!-- configurations and constants -->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
</body>
</html>
修改
该应用程序将在具有单个初始配置的tomcat服务器上运行。