10

有没有办法访问手风琴组是否开放?我知道有 isOpen 指令,但我不确定是否有办法在纯粹在 html 中访问它的状态。使用(和滥用?)两种方式绑定,我可以设置一个变量来保持该状态,但如果不执行 isOpen0、isOpen1、isOpen2 等操作,它将无法用于嵌套手风琴。我也可以使用 ng-init 来“声明”在嵌套手风琴的范围内有一个新的 isOpen ,但这听起来不是一个好主意。

  <accordion>
    <accordion-group is-open="isOpen">
      <accordion-heading>
         <div ng-class="{'myClass': isOpen}">Static Text</div>
      </accordion-heading>
      This content is straight in the template.
    </accordion-group>
  </accordion>

http://plnkr.co/edit/l5y4raei99pedNWcE225

4

1 回答 1

16

首先,您必须使用Angular UI 的文档示例中的父对象,例如status对象:

  <div accordion-group="" ng-init="status = {isOpen: false}" is-open="status.isOpen">
      <div accordion-heading="">
          <div ng-class="{'is-open': status.isOpen}">NUTRIENT PROFILES</div>
      </div>
      ...
  </div>

然后,您可以完美地为嵌套手风琴使用相同的对象名称。原因很简单:accordion-group指令将为每个组实例化一个新范围。这样,当 astatus.isOpen改变时,它不会影响其他组。

检查它:http ://plnkr.co/edit/nJ654pvE1itnGDQGp2rk?p=preview

于 2015-01-14T13:36:41.533 回答