【发布时间】:2015-04-27 09:21:57
【问题描述】:
我已经实现了自己的手风琴元素,所以我没有使用 ui-bootstrap。
当我点击另一个手风琴时,我正试图关闭另一个手风琴。
我目前有一个初始化函数,我声明所有手风琴都已关闭。当您单击其中一个手风琴时,它将激活 toggleActive 功能,该功能可切换单击的手风琴。如果您在另一个手风琴仍然打开时单击它应该关闭。只能打开一个手风琴。
HTML
<div class="job-item" ng-repeat="job in jobs">
<div ng-init="init(job)" ng-click="toggleActive(job)" ng-class="{'job-heading-collapsed': job.active, 'job-heading-expanded': !job.active}">
<h3>{{ job.title }}</h3>
<span ng-class="'fa fa-chevron-' + job.direction"></span>
</div>
<div class="slideDown" ng-hide="job.active">
<div class="expand-collapse-content">
<p>{{ job.description }}</p>
</div>
</div>
</div>
控制器
var app = angular.module('myApp')
.controller('JobsCtrl', function($scope, jobsService){
var jobs = jobsService.getJobs();
jobs.then(function (data) {
$scope.jobs = data.data;
});
$scope.init = function(job) {
job.active = true;
job.direction = "down";
}
$scope.toggleActive = function(job) {
job.active = !job.active;
if(job.active) {
job.direction = "down";
} else {
job.direction = "up";
}
}
});
【问题讨论】: