|  |      1zinking      2014-04-17 10:32:33 +08:00 说是说不清楚的, 你可以先不用MVC写个东西,然后再用MVC重构这个东西, 然后就高下立现了。 我当初反正就是这么学的 | 
|  |      2Mutoo      2014-04-17 10:32:53 +08:00  1 使用各种javascript mvc框架实现的todo,相关教程都可以在相应框架的书中看到 http://todomvc.com | 
|  |      3Mutoo      2014-04-17 10:33:56 +08:00  1 | 
|  |      4hkongm      2014-04-17 11:06:57 +08:00 MVC适合后端,前端进化到MVVM,MVC>MVP>MVVM. angularjs/knockoutjs/ember/avalon | 
|  |      5lemonlwz      2014-04-17 11:13:08 +08:00 ext, senchaTouch 也是MVC架构的 | 
|  |      6otakustay      2014-04-17 11:27:15 +08:00  2 C从M拿数据给V,V画出界面 用户点了V元素,V事件,C接收事件,要啥逻辑处理下,要数据从M拿,然后通知V,V更新界面 以上是传统型MVC,说白了就2回事 | 
|  |      7wity_lv      2014-04-17 11:58:32 +08:00  1 先说一下最主观的做法: get('data.json', function(data) { renderDom(data); // bala bala... }); 再说一下Model-View function createModel(data) { this.data = data; var event = { data: data, .... }; fireEvent('change', data); }; function createView(model) { model.listen('change', function(event) { renderDom(event.data); } } // M和V分离,交互通过事件进行, 实现数据绑定. var m = createModel({}); var v = createView(m); get('data.json', function(data) { m.update(data); }); 有没有注意到get操作并没有封装,如果m,v多了是不是会是问题, 下来是M-V-C function createControler(m,v) { this.m = m; this.v = v; this.fetchData = function() { get('data.json', function(data) { m.update(data); }); } } var v = createController(m, v); | 
|  |      8sternelee      2014-04-17 12:17:48 +08:00 via Android bootstrap | 
|  |      9otakustay      2014-04-17 16:20:39 +08:00 @wity_lv 我不大认同fetchData在controller做 http://blog.sourcing.io/mvc-style-guide Models should abstract away XHR connections from the rest of the application. |