スコープ内にオブジェクトの配列があり、これを ng-repeat でループしています。値に基づいていくつかの要素を除外したいのですが、ng-if が完全に無視されているようです。
説明するために、この単純なプランクを設定しました: 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を無視するものを見逃しましたか?