如果在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的忍者:))
答案 0 :(得分:5)
如果像这样定义items
,它将被放在全局范围内(在浏览器环境中,窗口对象)。
ng-repeat指令只能访问其控制器范围内的变量。所以你需要做这样的事情:
$scope.items = items;
初始化控制器时。
答案 1 :(得分:3)
有两种方法:
在<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']
}]);
或者您可以直接在html中<body ng-controller="testCtrl">
<div ng-repeat="n in items">
<!--your html here-->
</div>
</body>
像这样:
init