基于Knockout思想的增删改

比如,数据库是couchDB,存储的数据是json格式。

为了存储,json数据,越简单,越明了越好。

于是json传到前台页面, 发现存储的json格式,不适合前台Knockout绑定的json格式。

于是出现了,格式转换函数,双向的,存储转绑定,绑定转存储。

转换函数如下:

     function KoJSONtoCouchJSON(Arg,stringKey){
         if(Arg  instanceof Array){
             var inputArray = Arg;
             var outputArray=[];
             for( var i=0; i<inputArray.length; i++){
                outputArray.push(inputArray[i][stringKey]);
            }
             return outputArray;
        }
    }
     function CouchJSONtoKoJSON(Arg,stringKey){
         if(Arg  instanceof Array){
             var inputArray = Arg;
             var outputArray=[];
             for( var i=0; i<inputArray.length; i++){
                 var tempObj = {};
                tempObj[stringKey] = inputArray[i];
                outputArray.push(tempObj);
            }
             return outputArray;
        }
    }

通常,Knockout的数据绑定格式是,[{"number":"1"},{"number":"2"},{"number":"3"}] ,而存储的格式是["1","2","3"]。

对于json数据的增删改,JavaScript都能搞定。

页面称为view吧,存储的json成为model吧,通过view-model,view和model关联起来,一旦修改,view,不要你显式onblur事件,不要你onchange事件,model自动修改(虽然自动修改,也是通过onblur和onchange事件改变)。

一旦绑定好,嘿嘿,拿到后台传过来的json,不用一个个手动去关联input,自动显示咯。

另外附上,比较巧妙的删除数组空元素:

if($.trim(arr[i][key][j]).length > 0) tempArray[tempArray.length] = arr[i][key][j];

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值