Urs*_*ili 6 twitter-bootstrap ember.js ember-cli ember-bootstrap
我们从一个新的应用程序开始,使用Ember 3.8和bootstrap / SASS。似乎有两个可用插件在Ember中支持引导程序,ember-boostrap和ember-cli-bootrap-sassy。
尽管前者为大多数bootstrap功能实现了ember组件,并通过其自己的实现“替换”了原始的bootstrap.js,但对于后者,看来我仍然可以使用所有原始的组件和js实现。
乍一看,我会更熟悉ember-cli-bootrap-sassy,因为我仍然可以使用Web上的所有引导示例,并且拥有“定制”版本的bootstrap.js对我来说似乎有点违反直觉。另外,ember-bootstrap的所有引导功能都没有实现,但是我仍然需要?看来我可能会以使用ember-bootstrap的应用程序结尾,但是对于未实现的事情还使用了各种“变通方法”。
由于我在该领域没有太多经验,因此很高兴获得专家的一些建议和见解。
小智 10
因此,首先免责声明:作为的作者ember-bootstrap,我在这里肯定有偏见!;)
但是我认为我有很强的理由赞成ember-bootstrap,否则我将不会花大量的精力。因此,主要的一点是它遵循Ember的编程模型,而bootstrap.js直接使用却没有,并且在Ember应用程序中常常会感到尴尬:
ember-bootstrap严格遵循Ember中所谓的“数据减少操作”(DDAU)编程模型$('#myModal').modal('show'))不同如果听起来太抽象,请以这个模态组件的简单示例为例。在ember-bootstrap你会做这样的事情:
{{#bs-modal-simple
open=this.showConfirmation
title="Please confirm"
onSubmit=(action "submit")
onHidden=(action "close")
}}
Some {{dynamic}} content.
{{/bs-modal-simple}}
Run Code Online (Sandbox Code Playgroud)
showConfirmation状态设置为true(或什至使用已计算的属性自动计算该状态),可以显示模式。在bootstrap.js你将不得不以某种方式命令$('#myModal').modal('show')bootstrap.js你必须首先把事件侦听器在JavaScript(后来删除!)
$('#myModal').on('hidden.bs.modal', function (e) { // do something })。{{#if ...}}块中或更改路线)。从我的角度来看,这些是要点,但还有其他几点:
ember-bootstrap与Ember的测试层配合得很好。随着bootstrap.js你会在某个时候遇到问题,例如代码使用setTimeout()处理转换,这Ember的测试助手不知道的,所以不要等待的电话。但是通常您必须依靠测试来确定您的应用处于“稳定状态”。ember-bootstrap而是集成到Ember的所谓的“运行循环”中,这样的事情await click('#show-modal-button')就可以正常工作(即,当Promise解决时,该模式将是完全可见的)。bootstrap.js需要jQuery,而不需要ember-bootstrap。并添加一件事:以上所有内容适用于需要JavaScript的Bootstrap组件。对于徽章这样的静态组件,您只需编写适当的Bootstrap风格标记。实际上,ember-bootstrap故意没有为这些琐碎的Bootstrap组件提供组件,以免增加任何无用的开销。
| 归档时间: |
|
| 查看次数: |
100 次 |
| 最近记录: |