Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在angularjs(1x)控制器内全局使用变量?_Javascript_Angularjs - Fatal编程技术网

Javascript 如何在angularjs(1x)控制器内全局使用变量?

Javascript 如何在angularjs(1x)控制器内全局使用变量?,javascript,angularjs,Javascript,Angularjs,我希望在angularjs控制器中有一个数组,每当我在网页中调用函数时,该数组都会更新。我在控制器中声明了一个变量var myArray=[],但是每次调用函数时,数组的值都是空的,我需要它的作用域是全局的,这样每次从网页调用函数时,数组都会被更新,而不是每次初始化。。。因此,当我第二次单击按钮时,它会添加另一个hi,而不是我认为的每次它都会初始化数组 Html代码: 添加到数组 AngularJs代码: var app = angular.module("myapp"); app.contr

我希望在angularjs控制器中有一个数组,每当我在网页中调用函数时,该数组都会更新。我在控制器中声明了一个变量
var myArray=[]
,但是每次调用函数时,数组的值都是空的,我需要它的作用域是全局的,这样每次从网页调用函数时,数组都会被更新,而不是每次初始化。。。因此,当我第二次单击按钮时,它会添加另一个hi,而不是我认为的每次它都会初始化数组

Html代码:

添加到数组
AngularJs代码:

var app = angular.module("myapp");
app.controller("MyController", function($scope,$window) {
     var myArray = [];
     $scope.addToArray = function(input) {
         myArray.push(input);
     }
})

每次我按下add to array(添加到阵列)按钮时,阵列都会变成一个新阵列,并且只添加一次hi(高)

在本例中,代码工作正常:

var-app=angular.module(“myapp”,[]);
app.controller(“MyController”,函数($scope,$window){
var myArray=[];
$scope.addToArray=函数(输入){
push(输入);
log(myArray);
}
})

添加到数组

您所说的全球范围是什么意思?您正在使用控制器的多个实例吗?此外,还有一个语法错误,请从函数名中删除
()
$scope.addToArray=function(input){myArray.push(input);}
如果您确实需要使用全局变量,可以将它们添加为
$rootscope
的属性,但是使用全局变量从来都不是一个好主意。@ajaiJothi谢谢,我已经编辑了这个问题;全局性是指当我单击按钮时,我希望第一次添加“hi”,当我再次单击按钮时,“hi”应该第二次添加到我的数组中,因此全局性是指当第二次单击按钮时,我希望添加“hi”,twiceas@Nicolas说,如果没有重新创建与控制器关联的dom,你的代码应该可以工作。。。如果要访问模板中的
myArray
,请使用
$scope.myArray
。。我用你的代码创建了一个小提琴,非常感谢@georgeawg,似乎我在js的另一个地方删除了附加值,非常感谢你花时间回答!!!