我正在探索移动框架,并且遇到了 Ember.js。我喜欢 MVC 模型,但我很好奇通常如何处理视觉元素。例如,使用 jQuery Mobile,您可以轻松创建针对移动设备优化的表单元素(按钮、滑块、切换开关等)。您还可以处理页面转换。这些类型的视觉元素似乎超出了 Ember.js 的范围。
大多数人会将 Ember.js 与另一个处理视觉元素的框架(如 jQuery Mobile)结合使用吗?
我正在探索移动框架,并且遇到了 Ember.js。我喜欢 MVC 模型,但我很好奇通常如何处理视觉元素。例如,使用 jQuery Mobile,您可以轻松创建针对移动设备优化的表单元素(按钮、滑块、切换开关等)。您还可以处理页面转换。这些类型的视觉元素似乎超出了 Ember.js 的范围。
大多数人会将 Ember.js 与另一个处理视觉元素的框架(如 jQuery Mobile)结合使用吗?
Ember 在内部使用 jQuery,并且倾向于与 jQueryUI 小部件一起工作。人们遇到的主要问题是 ember 如何呈现视图和 jQueryUI 小部件丢失事件处理程序的动态特性(这通常很容易解决)。
理想情况下,您将使用 Ember 视图层为滑块等内容创建自定义视图,并且如果需要,这些自定义视图可以包装外部小部件。
https://github.com/flamejs/flame.js
FlameJS 也是一个有趣的项目,它提供了很多您所询问的内容。
您可以使用继承自 Ember.View 类的 didInsertElement 函数轻松地将基于 jQuery 的插件和框架与 Ember 集成。一个简单的例子是制作一个日期选择器:
App.DatePicker = Em.TextField.extend({
didInsertElement: function() {
this.$().datepicker();
}
});
在此示例中,this.$() 是 Ember 的 $(this.element) 简写,并在将文本输入插入 dom 后创建日期选择器。您可以使用 Ember 内置的观察者和属性绑定来处理更改。
jQueryMobile 特别需要一些配置以允许 Ember 控制路由和链接。一个很好的例子是https://github.com/LuisSala/emberjs-jqm。
你检查过 bootstrap.js 吗?它们的所有样式都会自动缩放以适应显示它们的任何尺寸的屏幕,并且不需要将任何特殊的东西集成到车把模板中,只需添加适当的类,它就可以处理其余部分。