我正在尝试编写一个Angular代码,该代码将从其他URL中读取常量并将这些常量放入当前的常量模块中。
这是我的示例Javascript:
var application = angular.module('mainApp', [])
.run(['$http', function($http){
alert('h1');
var gc;
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
console.log(this.response);
window.gc = this.response;
}
};
xhttp.open("GET", "myconst.properties", true);
xhttp.send();
alert(window.gc);
}]).controller('myController', function($scope, $rootScope) {
$scope.greetMessage = $rootScope.data;
});
无论我使用run
之类的provider
还是config
,alert(window.gc)
总是返回未定义的内容,即使我使用的是$http
而不是{{1 }},它保持不变。我没有使用Angular常量,因为其中有大量常量。我在当前的脚本页面中避免使用该常量列表。
任何建议将不胜感激。
答案 0 :(得分:0)
在此处使用了$ rootScope指令
var application = angular.module('mainApp', [])
.run(['$http','$rootScope', function($http,$rootScope){
alert('h1');
var gc;
$rootScope.gc = {};
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
console.log(this.response);
window.gc = this.response;
$rootScope.gc = this.response;
}
};
xhttp.open("GET", "myconst.properties", true);
xhttp.send();
alert($rootScope.gc);
}])
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="mainApp">
</div>