zoukankan      html  css  js  c++  java
  • 基于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];

    合乎自然而生生不息。。。
  • 相关阅读:
    Redis 扛 Mysq 并发方案小记
    CURL 访问 HTTPS 的坑 [后记]
    PHP CURL HTTPS Error: "SSL certificate problem: unable to get local issuer certificate"
    PHP 使用 cURL HTTPS 协议证书认证问题
    HTTPS 学习笔记 (1)
    Windows CMD 仿 Mac Terminal open 命令 打开指定目录资源管理器
    Win10 Hyper-V 配置
    Windows10 下精简和配置 MySQL 5.6
    Win10 + Nginx 1.10 + PHP 7 + Redis 配置方法
    sublime text 配置 builder [build system]
  • 原文地址:https://www.cnblogs.com/samwu/p/2481413.html
Copyright © 2011-2022 走看看