以编程方式控制 Angular-ui 手风琴的好方法是什么?

2024-03-17

我正在使用手风琴指令http://angular-ui.github.com/bootstrap/ http://angular-ui.github.com/bootstrap/我需要更好地控制手风琴何时打开和关闭。

更准确地说,我需要手风琴组内的一个按钮,该按钮将关闭其父手风琴并打开下一个(因此基本上模仿了如果 close-others 设置为 true 时单击下一个标题将执行的操作)。 在允许关闭手风琴并打开下一个手风琴之前,我还需要进行一些验证,并且我还需要将其连接到手风琴标题上的单击事件。

我对 Angular 还很陌生,我们目前正在将应用程序从 Backbone+JQuery 重写为 Angular。在 Backbone 版本中,我们使用 Twitter Bootstrap 手风琴,并使用 JQuery 打开和关闭它们。虽然我们仍然可以继续这样做,但我宁愿完全摆脱 JQuery DOM 操作,所以我正在寻找一个纯粹的角度解决方案。

我在验证方面尝试做的是

<accordion-group ng-click="close($event)">

在我的控制器中

    event.preventDefault();
    event.stopPropagation();

这显然不起作用,因为 DOM 元素被指令替换,并且永远不会添加点击处理程序。我一直在研究源代码(并发现了一些非常好的未记录的功能),但我不知道从哪里开始解决这个特定的挑战。我正在考虑分叉 Angular-ui 并尝试将此功能添加到 Accordion 指令中,但如果我可以在不修改指令的情况下实现此目的,那就更好了。


有的是is-open属性上的accordion-group它指向一个可绑定的表达式。通过使用此表达式,您可以以编程方式控制手风琴项目,例如:

<div ng-controller="AccordionDemoCtrl">
  <accordion>
    <accordion-group ng-repeat="group in groups" heading="{{group.title}}" is-open="group.open">
      {{group.content}}
    </accordion-group>    
  </accordion>
  <button class="btn" ng-click="groups[0].open = !groups[0].open">Toggle first open</button>
  <button class="btn" ng-click="groups[1].open = !groups[1].open">Toggle second open</button>
</div>

以及这里的工作情况:http://plnkr.co/edit/DepnVH?p=preview http://plnkr.co/edit/DepnVH?p=preview

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以编程方式控制 Angular-ui 手风琴的好方法是什么? 的相关文章

随机推荐

  • 扩展内联汇编中的约束“Rah”和“Ral”意味着什么?

    这个问题的灵感来自于另一个论坛上有人提出的问题 在下面的代码中 扩展内联汇编约束是什么Rah and Ral意思是 我以前没见过这些 include
  • Android:获取基站和邻近小区的小区 ID 和 RSS

    我正在尝试获取以下数据 基站 CellID和RSS 识别哪个是基站 对于所有邻近站点 小区 ID 和 RSS 有各种 API 看起来我必须使用不同的 API telephonyManager 和 PhoneStateListener 我有点
  • 如何使用 Composer 初始化 Symfony 控制台项目,以限制其坚持使用长期发行版本?

    我的目标是经营作曲家require命令来初始化 Symfony Console 项目 当运行作曲家的require命令 我相信可以将所需的包限制为特定版本 我正在考虑使用它来坚持 Symfony 的长期发行版本 它将支持更长时间 根据Sym
  • ExtJS 4:单击按钮后替换视口项目数组中的两个组件

    下面是一些单击按钮后即可运行的代码 当我在另一个按钮中再次设置 视图 变量 对于不同的按钮 并使用不同的网格和不同的表单运行这个确切的代码时 这两个项目完全消失 为什么它在第一次迭代时运行 但在第二次迭代时不运行 更重要的是 我怎样才能正确
  • 按元素有效比较 numpy 数组与其自身

    我正在执行大量这些计算 A A np newaxis T 其中 A 是一个密集的 numpy 数组 通常具有共同的值 为了进行基准测试 我们可以使用 n 30000 A np random randint 0 1000 n A A np n
  • Angular 2 服务 + RxJS BehaviourSubject 或 EventEmitter

    我是 Angular 2 和 RXJS 的新手 我有一个带有 2 个触发器 按钮 的自定义标头组件 它应该在应用程序的不同部分激活 2 个不同的导航指令 我创建了一个服务 它注册了 2 个不同的导航指令 并且标头组件订阅了该指令 我想知道链
  • 类型错误:get_params() 缺少 1 个必需的位置参数:'self'

    我试图使用scikit learn与 python 3 4 一起打包以进行网格搜索 from sklearn feature extraction text import TfidfVectorizer from sklearn linea
  • 即使添加“unsafe-eval”后,对 function() 的调用也会被 CSP 阻止

    我正在开发一个 NodeJS 项目并且正在使用CSP 内容安全政策 http www w3 org TR CSP 我正在使用外部插件FullCalendar它被 csp 阻止 出现以下错误 Error call to Function bl
  • Sequelize:批量插入

    我正在使用 Node js MySQL 和 Sequelize 我想一次向表中插入一些 10k 行 桌子有定制的primaryKey字段 正在手动设置 数据是从网上下载的并且是重叠的 我想要一个版本bulkCreate如果数据中的任何行具有
  • 如何在 MPAndroidChart 中向 x 轴和 y 轴添加字符串标签

    I am trying to add a String Label in order to label both the domain x axis and the range y axis of my LineChart as shown
  • Django:GenericForeignKey 中的 content_type_id

    我根据文档编写了这个类 以便能够对应用程序中具有 id 的任何内容进行投票 class Vote models Model class Meta unique together voted id voter id content type
  • take 2 $ [1..] 在 haskell 中如何工作?

    我们知道 运算符绑定的是最松散的 并且也关联到右侧 这意味着 1 应该首先被评估 因此 它不应该陷入无限循环吗 为什么它甚至完全停止了 Haskell is lazy and doesn t change that The operator
  • 适用于 C++ 的最佳开放式 XML 解析器是什么? [复制]

    这个问题在这里已经有答案了 我正在寻找一个简单 干净 正确的 XML 解析器来在我的 C 项目中使用 我应该自己写吗 怎么样RapidXML http rapidxml sourceforge net RapidXML 是一个用 C 编写的
  • C++:全局变量作为指针

    我是 C 新手 对全局变量有一个问题 我在许多示例中看 到全局变量是带有堆地址的指针 所以指针位于全局 静态变量的内存中 地址后面的数据位于堆上 对吗 相反 您可以声明存储数据的全局 无指针 变量 因此 数据存储在全局 静态变量的内存中 而
  • Grails - 将 HTML 文件作为 UTF-8 提供?

    通过 tomcat 通过 web app 提供的 html 文件的 UTF 8 被破坏 如果我直接打开文件file 它渲染得很好 如果我在运行应用程序期间查看该文件 它看起来不错 然而 当我部署为战争时 UTF 8字符出现乱码 响应的内容类
  • 如何内省地将处理程序连接到信号?

    gtk Builder http www pygtk org docs pygtk class gtkbuilder html能够识别 GUI 在 XML 文件中描述 可以发出的所有信号 并使用以下方法连接信号 http www pygtk
  • 状态栏中图标的颜色(Flutter)

    我正在使用 FLUTTER 设计指的是状态栏的黑色 并且状态栏图标的颜色必须是白色 那么如何改变 flutter 中状态栏图标的颜色呢 要改变icon白色尝试以下内容build method import package flutter s
  • 在 Rails 中清理迁移的好方法是什么?

    所以我已经在这个 Web 应用程序上工作了一年 我想将模式编译为一个迁移 这样我的文本编辑器加载速度更快 git 工作目录也不会那么混乱 搜索查找会更快 我的任何配置 数据库都不会长 4000px 迁移服务器后 请删除迁移文件 如果您想开始
  • CSV 标准 - 多个表

    我正在开发一个 python 项目 对 csv 文件进行一些分析 我知道 csv 文件没有明确定义的标准 但据我了解定义 https www rfc editor org rfc rfc4180 page 2 https www rfc e
  • 以编程方式控制 Angular-ui 手风琴的好方法是什么?

    我正在使用手风琴指令http angular ui github com bootstrap http angular ui github com bootstrap 我需要更好地控制手风琴何时打开和关闭 更准确地说 我需要手风琴组内的一个