【发布时间】:2016-03-11 12:39:28
【问题描述】:
我有一个子组件,我想以动画方式显示/隐藏它,就像 Bootstrap 的 collapse 组件一样。触发可见性的按钮位于外部视图中(而不是子视图内部)。
使用基本语法时
<compose view-model="edit-x" model.bind="x" show.bind="shouldShow"></compose>
(或具有自定义html元素名称的相应语法),它可以工作,但它只是出现(不是动画)。
建议 1 - 使用 Aurelia 动画
我确实尝试添加 class='au-animate' 但没有任何效果(为此还包括 main.js 中的 aurelia-animator-css)。
建议 2 - 使用 Bootstrap
另一个可能的解决方案可能是利用 Bootstrap,并将第二个参数(可见)传递给组件,然后让组件以某种方式监视该变量并调用 $('.collapse').collapse('toggle')。然后我将如何在model.bind 中传递两个变量?以及如何监控它?可以在 setter 上使用@bindable 吗?
建议 3 - 从外部组件使用 Bootstrap
也许最简单的方法是从外部调用$('#subcomponentName .collapse').collapse('toggle')?这么丑?我从外部视图中引用子视图中的元素,这可能跨越了一些边界,但代码会很小?
【问题讨论】:
-
aurelia-animator-css 仅在视图从 DOM 中移除时才会生效,
show.bind不会这样做,它只会隐藏元素。而是尝试if.bind="shouldShow"。 -
@Gusten 你想提交这个作为答案吗?我认为它解决了问题
标签: aurelia