作者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