在重新渲染之后,Ember已经切换了Bootstrap重新切换按钮

时间:2015-11-19 10:49:58

标签: twitter-bootstrap ember.js twitter-bootstrap-4 bootstrap-4

我有一个如下定义的按钮。

<button type="button"
  class="btn btn-primary-outline {{if shouldBeActive "active"}}"
  data-toggle="button"
  {{action "makeActive"}}>MyButton</button>

makeActive操作会切换shouldBeActive属性,这会导致按钮在ember重新呈现模板时获得或失去.active类。

这一切都很棒...除了在Ember更新DOM之后触发按钮的.active类的bootstrap.js点击处理程序,导致按钮切换到错误的切换状态

有没有雄辩的方法来解决这个问题?我唯一的想法是,我可以做一些愚蠢的事情......

<button type="button"
  class="btn btn-primary-outline {{if (xor shouldBeActive isFirstRender) "active"}}"
  data-toggle="button"
  {{action "makeActive"}}>MyButton</button>

...有效地将活动状态设置为与预期相反的状态,并让bootstrap将其切换为适当的状态。

1 个答案:

答案 0 :(得分:2)

似乎Bootstrap点击处理程序只有在你保留data-toggle="button"时才会触发,所以删除它会导致Ember处理程序只触发。