在ng-repeat中使用变量

时间:2015-05-28 09:54:55

标签: 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的忍者:))

2 个答案:

答案 0 :(得分:5)

如果像这样定义items,它将被放在全局范围内(在浏览器环境中,窗口对象)。

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

$scope.items = items;
初始化控制器时

答案 1 :(得分:3)

有两种方法:

  1. <div ng-controller="MyCtrl"> <ion-content> <div class="list"> <div class="item item-divider"> Friends </div> <a class="item" href="#" ng-repeat="item in items"> <h3>{{item.name}}</h3> </a> </div> </ion-cotent> </div> <script id="friend.html" type="text/ng-template"> <view left-buttons="leftButtons" right-buttons="rightButtons" hide-back-button="true" title="'Awesome'"> <content padding="true" has-header="true"> <h1>Friend details</h1> </content> </view> </script> items内声明scope变量。例如:

    controller

    然后像这样使用这个控制器:

    myapp.controller('testCtrl', ['$scope',function($scope) {
     $scope.items = ['a', 'b', 'c']
    }]);
    
  2. 或者您可以直接在html中<body ng-controller="testCtrl"> <div ng-repeat="n in items"> <!--your html here--> </div> </body> 像这样:

    init