twitter-bootstrapember.jsember-cliember-bootstrap

using bootstrap with ember 3.8


We start with a new application, using Ember 3.8 and bootstrap/SASS. There seem to be two add-ins available which support bootstrap within Ember, ember-boostrap and ember-cli-bootrap-sassy.

While the former implements ember components for most of the bootstrap features and also "replaces" the original bootstrap.js by it's own implementation, with the latter, it seems I can still use all the original components and js implementations.

From first glace, I would be much more comfortable with ember-cli-bootrap-sassy, since I could still use all bootstrap examples from the web, and having a "customized" version of bootstrap.js also seem somewhat counter-intuitive to me. Also, what about all the bootstrap features ember-bootstrap does not implement, but I still require? It seems like I might be ending with an appliation which would use ember-bootstrap, but additionally uses all sorts of "workarounds" for things not implemented.

Since I don't have much experience in this field, I would be glad for some recommendations and insights from experts.


Solution

  • So first of all a disclaimer: as the author of ember-bootstrap, I am certainly a bit biased here! ;)

    But I think I have strong arguments in favor of ember-bootstrap, otherwise I wouldn't have invested that ton of work. So the main one is that it follows the programming model of Ember, while using bootstrap.js directly doesn't and would often feel awkward in an Ember app:

    If that sound too abstract, take this simple example of a modal component. In ember-bootstrap you would do something like this:

    {{#bs-modal-simple
      open=this.showConfirmation
      title="Please confirm"
      onSubmit=(action "submit")
      onHidden=(action "close")
    }}
      Some {{dynamic}} content.
    {{/bs-modal-simple}}
    

    These are the main points from my point of view, but there are even a few more:

    And to add one more thing: all of the above applies to Bootstrap components that need JavaScript. For just static components like badges you can just write the appropriate Bootstrap flavored markup. In fact ember-bootstrap intentionally does not provide components for these trivial Bootstrap components to not add any useless overhead.