我有一个范围内的对象数组,我用 ng-repeat 循环。我想根据它们的值过滤掉一些元素,但似乎 ng-if 被完全忽略了。
我设置了这个简单的 plunk 来说明:http://plnkr.co/edit/Aj0hpZQTfnkQ6BYG8DRb。
这是控制器:
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
$scope.events = [
{key: "ClassName", value: "exception", age:12},
{key: "Message", value: "oops", age: 25},
{key: "Stack", value: null, age: 35}
]
});
和 HTML 模板:
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script>document.write('<base href="' + document.location + '" />');</script>
<link rel="stylesheet" href="style.css" />
<script data-require="angular.js@1.0.x" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js" data-semver="1.0.8"></script>
<script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
<p>Hello {{name}}!</p>
<ul>
<li ng-repeat="event in events" ng-if="event.age > 20">
[{{$index + 1}}] {{event.key}}: {{event.value}} - {{event.age}}
</li>
</ul>
</body>
</html>
该ng-if
指令应该过滤掉数组的第一个元素,无论如何都会显示它。我错过了什么忽略了 ng-if?