2014-09-25 77 views
1

我的手風琴沒有開放。我最初認爲這是由於ng-view導致的,因爲有許多bug報告。我試過these解決方案的both,但似乎並不像標籤導致問題。我還將手風琴移到了ng-view之外,他們仍然沒有開放。Angular-UI-Bootstrap手風琴不開放

我使用自舉3和角UI的自舉tmpls.0.11.0.js

我的應用:

angular 
    .module('App', [ 
    'ngRoute', 
    'templates', 
    'ui.bootstrap.tpls', 
    'ui.bootstrap', 
    ]) 

.config(function ($routeProvider, $locationProvider) { 
    $routeProvider 
    .when('/doctor', { 
     templateUrl: 'doctor_profile.html', 
     controller: 'DoctorCtrl' 
    }) 
$locationProvider.html5Mode(true); 
}) 

doctor_profile.html:

<accordion close-others="oneAtATime"> 
    <accordion-group ng-repeat="doctor in doctors"> 

    <accordion-heading> 
     <span>{{doctor.name}} </span> 
    </accordion-heading> 
      {{ doctor.type }} 
    </accordion-group> 
</accordion> 

和最後我的控制器

.controller('DoctorCtrl', function($scope) { 
    $scope.oneAtATime = false; 

    $scope.doctors = [ 
     { 
     name: 'Dr. Bob ', 
     type: 'Orthopedic Surgery', 
     }, 
     { 
     name: 'Dr. Ted', 
     type: 'Pediatritian', 
     }, 

    $scope.status = { 
     isFirstOpen: true, 
     isFirstDisabled: false 
    }; 

回答

3

你需要手風琴是開性綁定如下:

<accordion-group ng-repeat="doctor in doctors" is-open="status.isItemOpen[$index]"> 

,並在控制器

$scope.status = { 
     isItemOpen: new Array($scope.doctors.length), 
     isFirstDisabled: false 
    }; 

$scope.status.isItemOpen[0] = true; 

打開第一組(只是一個例子)和

$scope.status.isItemOpen[0] = false; 

關閉第一組。

致以問候

+0

這似乎不是問題。這只是打開所有手風琴,然後你仍然無法關閉它們。 – user2954587 2014-09-25 13:28:36

+0

您需要爲每個手風琴組使用一個單獨的綁定屬性。你做一個ng-repeat,這意味着每個組都綁定到你的控制器的$ scope.isFirstOpen屬性。這就是爲什麼他們全部開放。只是改變了例子。 – Dansen 2014-09-25 14:19:42