2013-07-15 59 views
1

在我的Angular指令中,我嘗試隱藏和顯示手風琴面板。問題是,當我通過代碼訪問手風琴時,手風琴打破了。如何在Angular指令中擴展自舉手風琴?

例如,當我這樣做:

$("#collapseOne").collapse('hide')

面板處於摺疊狀態,但在標題的鏈接不工作了,所以用戶無法展開面板。我也嘗試了諸如:

$("#collapseOne").removeClass('in');$("#collapseOne").hide();

但他們沒有工作。或者他們有相同的效果,或者根本不工作。

下面是HTML:

<div class="accordion" id="accordion2"> 
     <div class="accordion-group"> 
      <div class="accordion-heading"> 
        <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseOne"> 
         Customer 
        </a> 
      </div> 
      <div id="collapseOne" class="accordion-body collapse"> 

       <div class="accordion-inner"> 
        Customer list 
       </div> 
      </div> 
     </div> 
     <div class="accordion-group"> 
      <div class="accordion-heading"> 
       <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseTwo"> 
         My form 
       </a> 
      </div> 
      <div id="collapseTwo" class="accordion-body collapse"> 
       <div class="accordion-inner"> 
        <form novalidate data-ng-submit="certificateFormSubmit()"> 
         Some form 
        </form> 
       </div> 
      </div> 
     </div> 
     <div class="accordion-group"> 
      <div class="accordion-heading"> 
       <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseThree"> 
         Title for other content 
       </a> 
      </div> 
      <div id="collapseThree" class="accordion-body collapse"> 
       <div class="accordion-inner"> 
        Some other content 
       </div> 
      </div> 
     </div> 
    </div> 

,這是我的指令的簽名:我試圖創建一個小提琴

app.directive('certificateEdit', function ($q, ProductService, CustomerService, CertificateService) { 
    return { 
     restrict: 'E', 
     templateUrl: '/Certificate/Add', 
     scope: { 
      certificate: '=', 
      customerId: '=', 
      visible: '=', 
      onCertificateSaved: '&' 
     }, 
     controller: function ($scope, $element, $attrs) { 
      // based on the certificate attribute value, I want to expand a accordion panel 
     }); 

,但我不能讓小提琴工作。我花了兩個小時創建一個小提琴,但我不能得到指令工作..

回答

0

您可以使用angular.element(jQuery選擇器在這裏) 現在你可以使用任何方法,因爲它返回你的元素作爲對象(jQuery對象)

+0

我想我要關於指令的vaque。我的指令顯示了一個HTML頁面,並在該頁面上有這個手風琴。手風琴被另一個div包裹。我嘗試過'angular.element',但沒有成功.. – Martijn

+0

您可以擁有該手風琴的ID,並且可以使用angular.element展開或摺疊。它更好地創建你的問題小提琴,以便我可以輕鬆地幫助你。 –

+0

我知道,我已經嘗試過'angular.element(「#collapseTwo」)。collapse('show');'但那不起作用。我想創建一個小提琴,但我沒有讓我的問題工作。我嘗試模擬那裏的問題,但我卡住:( – Martijn