【问题标题】:How to display an element with ng-show based on AngularJS Bootstrap UI Accordion state?如何基于 AngularJS Bootstrap UI Accordion 状态使用 ng-show 显示元素?
【发布时间】:2014-11-16 01:24:15
【问题描述】:

我有一些基于$resource 的动态手风琴,如下所示:

$scope.categories = $resource.query() // Written as such for simplicity sake

然后在我的模板中我有以下内容:

<accordion-group ng-repeat="category in categories" is-open="$first">
    <accordion-heading>
        <button ng-show="IDontKnow">...</button>
        ...
    </accordion-heading>
</accordion>

有了上面的内容,我默认第一次打开这是我想要的,但是我想只有在手风琴打开时才显示上面的按钮。因为$first 是来自ng-repeat 的特殊变量,所以我无法更改它。我试过像这样使用isOpen

<button ng-show="category.isOpen">...</button>

但这也没有用。我怎样才能做到这一点?请记住,手风琴是基于动态内容的。

非常感谢。

【问题讨论】:

    标签: javascript angularjs accordion angular-ui-bootstrap


    【解决方案1】:

    请看这里http://plnkr.co/edit/rv6esLxJuE6NLlxwhZkh?p=preview

    你可以使用 ng-init 即:ng-init="category.isOpen=$first"

    HTML:

       <accordion close-others="oneAtATime">
    
      <accordion-group ng-repeat="category in categories" is-open="category.isOpen" ng-init="category.isOpen=$first">
        <accordion-heading>
          I can have markup, too!
          <button ng-show="category.isOpen">I'm the button</button>
        </accordion-heading>
        This is just some content to illustrate fancy headings.
      </accordion-group>
    </accordion>
    

    【讨论】:

    • 唯一的问题是按钮在手风琴内部,但更重要的是它在每个手风琴上都是可见的。如果手风琴打开,则按钮(在手风琴标题面板内)可见。我更新了我的代码示例以更好地说明它。
    • 谢谢它确实有效,但是第一部手风琴不再像以前那样打开,我不明白为什么要诚实。有什么想法吗?
    • @WagnerMatosUK is-open="category.isOpen" ng-init="category.isOpen=$first" 你见过例子吗?第一个是开放的
    • 是的,我有,而且我已经逐字复制了它,但是内部手风琴中有一个代码干扰了它。我的错,对不起。我已经找到并修复了它。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 2015-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-04
    相关资源
    最近更新 更多