Javascript 在ng repeat中使用变量
如果变量在Angular.js指令之外定义,如何在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范围内和范
<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的别名属性。是的,我需要第一种方法。谢谢大家: