我在探索移動框架,並且遇到了Ember.js。我喜歡MVC模型,但我很好奇通常如何處理視覺元素。例如,使用jQuery Mobile,您可以輕鬆創建移動優化的表單元素(按鈕,滑塊,切換開關等)。您也可以處理頁面轉換。這些類型的視覺元素似乎超出了Ember.js的範圍。使用Ember.js處理視覺元素
大多數人會使用Ember.js與處理視覺元素的另一個框架(如jQuery Mobile)結合嗎?
我在探索移動框架,並且遇到了Ember.js。我喜歡MVC模型,但我很好奇通常如何處理視覺元素。例如,使用jQuery Mobile,您可以輕鬆創建移動優化的表單元素(按鈕,滑塊,切換開關等)。您也可以處理頁面轉換。這些類型的視覺元素似乎超出了Ember.js的範圍。使用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.element)灰燼短手和文字輸入插入之後創建的日期選擇器進入dom。您可以使用Ember的內置觀察器和屬性綁定來處理更改。
jQueryMobile特別需要一些配置來允許Ember控制路由和鏈接。一個很好的例子是https://github.com/LuisSala/emberjs-jqm。
你檢查過bootstrap.js嗎?他們的所有樣式都會自動縮放以適應任何大小的屏幕顯示,並且不需要任何特別的東西集成到手柄模板中,只需添加適當的類並基本處理其餘的部分。
你可以闡述有點「燼如何呈現的觀點和jQueryUI的部件丟失事件處理程序(通常是容易解決)。」感謝, – GeorgeW
由於視圖在運行時不會渲染到dom中,因此您無法在腳本的任何時刻簡單地設置小部件。我發現最好的做法是在視圖didInsertElement或afterRender回調上初始化小部件。 –