作者dryman (dryman)
看板Ajax
標題[心得] ember.js
時間Sun Apr 21 06:26:36 2013
Ember.js 是ruby bundler之父Yehuda Katz創造的前端MVC framework
雖然開發時程很長,但它在國外開發社群中引起了很多注目
2013年初它邁向stable release,稍微研究後覺得還蠻有意思的
正文開始
========
在跳到程式碼之前,我覺得先說明概念比較容易理解EmberJS
Route
-----
Ember的核心概念是使用url來代表state
每個頁面都有自己的一個url,例如
/posts
/posts/1
/posts/new
/posts/edit
負責管理url的class,不意外的就route
route可粗分為兩種,一種是route, 一種是resource
route可以是任意的url,但一般來說會是指動詞或形容詞
例如new, edit
resource則是名詞,在上述例子中/posts就是一個名詞
/posts/1也是一個名詞(一篇文章),因此在Ember的API中會使用resource來呼叫
Controller & Contents
---------------------
一個網頁頁面中不僅僅只有url是動態的,其內容也可能是動態的
例如一篇post裡面會有comments
但你通常不會用特別的url來連結comments,對吧?
在一篇post當中所有的元件,都可以用controller, view, template來呈現
EmberJS的controller跟一般後端的controller不一樣
後端的controller通常用來呈現一個URL,一個頁面
但EmberJS的頁面中可以有數個controller,這比較接近GUI的MVC設計
每個controller專司頁面中的一塊區域
例如post當中會有一個comments的controller用來處理多個comment
這些controller除了處理頁面呈現外,還可以處理事件
例如一個呈現數個按鈕的controller,就是接受並處理事件的controller
不僅僅如此,它們還可以用來bind data
也就是說當有其他事件更動了controller負責的model時
controller會自動更新頁面上相關的區域
這就是EmberJS強大的地方
* * *
以上這些概念是我覺得一開始讀EmberJS教學時最難懂的地方
了解這些後再看EmberJS就容易許多
如果有人有興趣的話,我之後可以來寫一些中文的範例教學
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 207.151.231.173
1F:推 YUPTT:期待範例 04/21 10:51
2F:推 jimpop:期待範例+1 04/21 13:09
3F:→ dryman:話說,這版人氣怎麼這麼低...JS現在不是很熱門嗎?orz 04/22 02:47
4F:→ s25g5d4:在台灣夯不起來阿QQ 04/22 07:25
5F:→ superpai:版名不潮 04/22 09:21
6F:推 b12031106:範例!範例!(敲碗 04/22 13:28
7F:推 LetDogDay:最近正好在看...感覺滿有趣的...期待範例... 04/23 03:18
9F:推 ck574b027:真的,讓版名與內容符合的話應該能上CS前五名 04/23 16:17
10F:推 skyman1999:目前在學angular js 也是MVC的架構.. 04/26 22:48