七段

          無論怎樣,請讓我先感謝一下國家。

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            35 Posts :: 2 Stories :: 7 Comments :: 0 Trackbacks
          傳統(tǒng)的client side js MVC 結(jié)構(gòu):
          Model:
          json object - mapping with PO from server side
          View:
          HTML + CSS
          Controller:
          Page object - 負(fù)責(zé)頁面初始化邏輯(驗(yàn)證、事件綁定、json數(shù)據(jù)渲染到DOM),提交時,獲取DOM的數(shù)據(jù)組裝json。

          Concrete Javascript Pattern :
          把status 和 behavior 直接綁定到DOM element上。

          jquery concrete framework:
          http://github.com/hafriedlander/jquery.concrete
          http://github.com/nkallen/effen/
          前者42k,后者0.8k。
          與直接在DOM element object上添加status or behavior相比,框架的好處是可以批量添加。

          用例:
          對于autocomplete組件,formatted data = data name; saved data= data id;
          之前有一個實(shí)現(xiàn)是為了save data id,多加了一個 input hidden.
          如果是concrete js pattern, 可以在這個input element 上直接保存數(shù)據(jù)。
          effen + jquery.autocomplete test:
          $('body').append('<div id="dom_test"><input id="month"/></div>');
                      var monthInput = $("#month");
                      monthInput.fn({
                          dataPair: function(){
                              if (arguments.length == 0) {
                                  return this._data;
                              }
                              else {
                                  this._data = arguments[0];
                              }
                          },
                          _data: []
                      });
                      monthInput.autocomplete(months, {
                          minChars: 0,
                          max: 12,
                          autoFill: true,
                          mustMatch: true,
                          matchContains: false,
                          scrollHeight: 220,
                          formatItem: function(data, i, total){
                              if (data[0] == months[new Date().getMonth()]) 
                                  return false;
                              return data[0].substring(0, 3);
                          },
                          formatResult: function(row){
                              return row[1];
                          }
                      });
                      monthInput.result(function(event, data, formatted){
                          var _data = data[0].split("|");
                          monthInput.fn("dataPair", _data);
                          console.dir(monthInput.fn("dataPair"));
                      });
          



          已有 0 人發(fā)表留言,猛擊->>這里<<-參與討論


          JavaEye推薦




          文章來源:http://sevenduan.javaeye.com/blog/503946
          posted on 2009-10-31 14:49 sevenduan 閱讀(132) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 蒙城县| 和政县| 长葛市| 昭苏县| 延长县| 定襄县| 广水市| 汉中市| 安泽县| 锡林浩特市| 策勒县| 健康| 莲花县| 德清县| 峡江县| 乐清市| 仙游县| 屯留县| 临洮县| 神木县| 荆州市| 西丰县| 宾川县| 大冶市| 深州市| 都匀市| 乐平市| 林周县| 方正县| 东安县| 长海县| 南平市| 兴义市| 调兵山市| 桂林市| 岳普湖县| 丰城市| 郑州市| 营山县| 凤翔县| 雷波县|