Angular.jsでfilterを使わずにタブっぽい処理を実装してみます。
サンプルコード
HTML
.tab-switchがタブの切り替え部分、.tab-bodyがタブのコンテンツ部分になります。
<div ng-controller="tab_ctrl">
<div class="tab-switch">
<div class="tab-switch-item" ng-repeat="switch in tabData" ng-click="switchClick($index)">{{switch.belong}}</div>
</div>
<div class="tab-body">
<div class="tab-body-item" ng-repeat="body in tabData[view]['contents']">
<span class="tab-body-item_name">{{body.name}}</span>
<span class="tab-body-item_birthday">( {{body.birthday}} )</span>
</div>
</div>
</div>
CSS
.tab-switch-item {
display: inline-block;
margin: 10px;
border: #cccccc 1px solid;
border-radius: 3px;
padding: 5px 8px;
cursor: pointer;
}
.tab-body {
margin: 10px;
}
.tab-body-item {
margin-bottom: 10px;
border-bottom: #000000 1px dotted;
padding-bottom: 10px;
}
.tab-body-item_birthday {
font-size: 13px;
}
JavaScript
angular.module('app', []).controller('tab_ctrl', function($scope) {
// 表示するタブの番号
$scope.view = 0;
// タブクリック時の処理
$scope.switchClick = function(index) {
$scope.view = index;
}
// タブで使用するデータ
$scope.tabData = [
{
"belong": "アイムエンタープライズ", // タブの切り替えに表示されるテキスト
"contents": [
{
"name": "佳村 はるか",
"birthday": "非公開"
},
~ 略 ~
{
"name": "早見 沙織",
"birthday": "1991.5.29"
}
]
},
~ 略 ~
{
"belong": "大沢事務所",
"contents": [
{
"name": "茅野 愛衣",
"birthday": "1987.9.13"
},
~ 略 ~
{
"name": "花澤 香菜",
"birthday": "1989.2.25"
}
]
}
];
});
$scope.viewの値を変更して、タブのコンテンツ内容を変更しています。
タブ切り替えのデモページ
コメントが承認されるまで時間がかかります。