我有2个js文件:1.js和2.js.
在1.js我有一个变量
var test ='Hello';
我试图访问2.js中的变量
alert(test);
示例代码:
1.js:
$(document).ready(function () {
var test = 'Hello';
});
2.js:
$(function () {
function getData(){
alert(test);
}
});
在js文件的aspx页面顺序中:
<script type="text/javascript" src="js/1.js"></script>
<script type="text/javascript" src="js/2.js?"></script>
我知道这个问题在很多次之前被问过,但没有一个答案似乎对我有用。
答案 0 :(得分:1)
确保您的var myApp = angular.module('myApp',[]);
myApp.controller('MyCtrl',function($scope, $timeout) {
$scope.rating=5;
$scope.rating1=4;
$scope.rateColor = function(rating) {
if(rating==5)
return "background-color:"+"red";
else
return "background-color:"+"green"
}
});
不在函数内,并且您的文件以正确的顺序加载。
在您的第一个文件中使用类似
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.min.js"></script>
<div ng-app="myApp" ng-controller="MyCtrl">
<h2 style="{{rateColor(rating)}}">
{{rating}}
</h2>
<h3 style="{{rateColor(rating1)}}">
{{rating1}}
</h3>
</div>
在你的var test
中使用
<script type="text/javascript">
var test = "myVar"
</script>
// Now here include your js file too JS file
// Or set in window scope like window.test="myVar";
全局范围内的变量可以从所有javascript文件访问。 你的第一个js文件
这是另一种方式。
JS file
你的第二个js文件
$(function() {
alert(test);
// alert(window.test);
});
在html页面添加
//first.js file don't put variable inside any function here.
var globalVariable={
test: 'myVar'
};
答案 1 :(得分:0)
您可以使用sessionStorage存储变量值
$(document).ready(function () {
sessionStorage.setItem('test ', 'Hello');
});
在下一个文件中使用
检索它$(function () {
function getData(){
var data = sessionStorage.getItem('test');
alert(data );
}
});
请注意,文件1.js需要在2.js
之前加载