Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.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 在ng repeat中使用变量_Javascript_Angularjs - Fatal编程技术网

Javascript 在ng repeat中使用变量

Javascript 在ng repeat中使用变量,javascript,angularjs,Javascript,Angularjs,如果变量在Angular.js指令之外定义,如何在ng repeat内部使用该变量 例如,这不起作用: <script> var items = ['a', 'b', 'c']; </script> <div ng-repeat="n in items"> ... </div> <script> ... do something with items ... </script> 如何使变量在ng repeat范围内和范

如果变量在Angular.js指令之外定义,如何在ng repeat内部使用该变量

例如,这不起作用:

<script>
var items = ['a', 'b', 'c'];
</script>

<div ng-repeat="n in items">
...
</div>

<script>
... do something with items ...
</script>
如何使变量在ng repeat范围内和范围外工作

显然,我不是角度上的忍者:

如果你定义这样的项目,它会被放在浏览器环境的全局范围内,即窗口对象

ng repeat指令只能访问其控制器范围内的变量。所以你需要这样做:

$scope.items = items;
<body ng-controller="testCtrl"> 
 <div ng-repeat="n in items">
  <!--your html here-->
 </div>
</body>
<body ng-controller="testCtrl" ng-init="items = ['a', 'b', 'c']"> 
 <div ng-repeat="n in items">
  <!--your html here-->
 </div>
</body>

初始化控制器时。

有两种方法:

声明控制器范围内的items变量。例如:

myapp.controller('testCtrl', ['$scope',function($scope) {
 $scope.items = ['a', 'b', 'c']
}]);
然后像这样使用这个控制器:

$scope.items = items;
<body ng-controller="testCtrl"> 
 <div ng-repeat="n in items">
  <!--your html here-->
 </div>
</body>
<body ng-controller="testCtrl" ng-init="items = ['a', 'b', 'c']"> 
 <div ng-repeat="n in items">
  <!--your html here-->
 </div>
</body>

您可以添加另一个ng repeat指令,但请注意,items是一个全局变量,因此您可以在页面中需要的任何位置访问它。您希望使用哪个变量n或items?首选哪一个?我更喜欢第一种方法。以后很容易找到和修改变量:@Pavlo首选第一种方法,请参阅:它唯一推荐的用途是嵌套ng-inits的别名属性。是的,我需要第一种方法。谢谢大家: