でツリービューを作成しました。ng-repeat
を使用しました。私はまた、私のデータソースをフィルタリングするフィルタを追加しました。親ノードとリソースノードを私が期待したものとしてフィルタリングすることができましたが、私の問題は期待通りに子ノードのフィルタリングを達成できなかったことです。これは私の現在の開発状況の写真です。親ノードと子ノード内の角度jsデータソースのフィルタリング
IMG 4は、私の子ノードをフィルタリングの現在ststusを表示しますが、私の正確な要件は、唯一その子ノードの子ノードが存在する場合は、ノードをフィルタ上、すなわちIMG 5のそれに似ていますその親がApperarする必要があります、残りのすべての子ノードを非表示にする必要があります。私はそのために何をすべきですか?ここに私のコードスニペットがあります。
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script>
angular.module("app", [])
.controller('MainController', function ($scope) {
$scope.ObjectData = { "name": "Main Object 1",
"ParentObject": [
{
"name": "Parent Object 1",
"ChildObject": [
{"name": "Child Object 11"},
{"name": "Child Object 12"}
]
},
{
"name": "Parent Object 2",
"ChildObject": [
{"name": "Child Object 21"},
{"name": "Child Object 22"}
]
}
],
"resources": [
"Resource 1", "Resource 2"
]
}
});
</script>
</head>
<body>
<div ng-app="app" ng-controller="MainController">
<input type="text" placeholder="search" ng-model="search">
<ul>
<li>
<a>
<span>{{ ObjectData.name }}</span>
</a>
<ul>
<li ng-repeat="subItem in ObjectData.ParentObject | filter:search">
<a>
<span>{{ subItem.name }}</span>
</a>
<ul>
<li ng-repeat="childItem in subItem.ChildObject">
<a>
<span>{{ childItem.name }}</span>
</a>
</li>
</ul>
</li>
</ul>
<ul>
<li ng-repeat="resources in ObjectData.resources | filter:search">
<a>
<span>{{ resources }}</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>