Wex5的代码模型

一 事件监听模型

    //页面加载后,在需要监听的页面上设置监听事
  Model.prototype.modelLoad = function(event) {
       justep.Shell.on("onUserChanged", this.onUserChanged, this);
     }

  //卸载用户变更事件
   Model.prototype.modelUnLoad = function(event) {
       justep.Shell.off("onUserChanged", this.onUserChanged);
 };

 //具体事件
  Model.prototype.onUserChanged = function(event) { 
        this.comp("userData").refreshData();
  };

二 过滤模型

    数据过滤分几种情况

    1. 定值过滤       

   this.comp("userData").setFilter("userFilter", "fID = '123'");
   this.comp("userData").refreshData();

    2.变量过滤      

    this.comp("userData").setFilter("userFilter", "fID = '" + this.userUUID + "'");
    this.comp("userData").refreshData();

   3.复杂字段模糊查询

     在多个关键字模糊查询中,非空判断与过滤器清空,非常重要

 var key = this.getElementByXid("keyInput").value; // 取出输入关键字的值
 if (key !== null && key !== "") { // 非空判断,避免sql报错
goodsData.setFilter("keyFilter", "market_goodsstore.p_name like '%" + key + "%' or market_goodsstore.p_title like '%" + key + "%' or market_goodsstore.p_brand     like '%" + key
 + "%' or market_goodsstore.p_postAddress like '%" + key + "%' or market_goodsstore.p_summary like '%" + key + "%' "); // sql模糊查询拼接
// product_product 是数据库表别名.p_name是字段名
} else {
goodsData.filters.clear(); // 空值清除过滤器
}

 (注)filter的过滤条件对应sql中的where的内容,注意字符串拼接方法与换行

三 页面跳转传参模型

1 无参跳转     

   justep.Shell.showPage("goodsEdit");

2有参跳转   

 justep.Shell.showPage("goodsEdit", {
  goodsId : goodsId,
 });

3 带来源页面有参跳转      

 justep.Shell.showPage("goodsEdit", {
     goodsId : goodsId,
     from : "goodsManager"
});

  from为自定义键,在多页面共用子页面的跳转中,告诉子页面,父页面是谁,子页面完成功能后跳转回到父页面。

四 页面接参模型

 1 简单接参     

Model.prototype.modelParamsReceive = function(event) {
    if (event.params !== undefined) {
        this.orderId = this.params.orderId;
     }
 };

 只要参数非空,即接参并存储

2 复杂来源页面接参

Model.prototype.modelParamsReceive = function(event) {
if (this.params !== undefined) {
if (this.params.from === "register") {
if (this.userUUID != this.params.userUUID) {
this.userUUID = this.params.userUUID;
this.comp("userData").setFilter("userFilter", "p_ID = '" +this.userUUID + "'");
this.comp("userData").refreshData();
this.phoneInput = this.comp("userData").val("p_phone");
this.passwordInput = this.comp("userData").val("p_password");
this.comp("phoneInput").val(this.phoneInput);
this.comp("passwordInput").val(this.passwordInput); 
// 将注册页的信息传回来接收,为了信息安全,传参为userUUID,然后过滤出相应的用户信息
this.from = "mine";
      }
} else if (this.params.from === "mine") {
    this.from = this.params.from;
} else if (this.params.from === "home") {
    this.from = this.params.from;
       }
    }
};

目是只有一个,根据不同的来源页面,执行不同的数据刷新或其它操作

五 data套装模型

 1  newdata  新增,代码提示里有,这里不说了

 2  保存      

this.comp("goodsData").saveData( {
        "ansyc" : false,
        "onSuccess" : function(event) {
                  event.source.saveData({
                      "onSuccess" : function(event) {
                  event.source.refreshData();
                              }
                  });
          }
    });

  3 删除

Model.prototype.delBtnClick = function(event) {
var rows = this.comp("goodsData").find([ "p_choose" ], [ "1" ]);
this.comp("goodsData").deleteData(rows, {
    "confirm" : false,
    "onSuccess" : function(event) {
            event.source.saveData({
    "onSuccess" : function(event) {
            event.source.refreshData();
            }
    });
    }
  });
};

data相关动作,套接在onsuccess回调函数里,大家不用去每次调用data的事件来触发,
拷贝使用,直接改下data组件id,复用性强。

六 点击当前行模型

 var row = event.bindingContext.$object;

 这里要注意,this.comp("data").getCurrentRow,会重复得到当行前数据,
 点击第二次才能切换到其它行

七 list 嵌套模型

 分为两情情况

 1  list外嵌套,list各不相干,只是关联过滤

 左侧是城市list,右侧是景点list,景点根据城市过滤,重点在filter写法
过滤条件
  $row.val("t_city")  左侧是景点当前行的城市字段

  $model.cityData.val("t_shi")  右侧是城市data中的城市字段

  两者做==对比判断,为true时过滤执行

  这个相对简单,在过滤时有提示。

2 list内嵌套,一个list内再内嵌一个list

内嵌套条件

八 回车监听

回车,执行,不用去特意点击,好多页面都要用

$(document).keyup(function(event) {
     if (event.keyCode == 13) {
     $("#searchBtn").trigger("click");
    }
 });

九 选择模型

1 单选

   简单,不作说明

 2 全选 模型

根据全选按钮的值,遍历data里的值。真是经常用的东西

cartData.each(function(obj) {
if (choose) {
    cartData.setValue("p_choose", "1", obj.row);
  } else {
  cartData.setValue("p_choose", "", obj.row);
  }
});

3  返选模型

  在全选基础上,返选。其实本质是先把已选或未选的值先归0后重新赋值。

Model.prototype.invertChooseChange = function(event) {
var chineseData = this.comp("chineseData");
    if (this.comp("invertChoose").val() == 1) {
chineseData.each(function(obj) {
    if (chineseData.getValue("choose", obj.row) == 0) {
chineseData.setValue("choose", "1", obj.row);
    } else {
chineseData.setValue("choose", "0", obj.row);
}
});
} else {
  chineseData.each(function(obj) {
if (chineseData.getValue("choose", obj.row) == 0) {
    chineseData.setValue("choose", "1", obj.row);
} else {
chineseData.setValue("choose", "0", obj.row);
}
});
}
    chineseData.saveData();
    chineseData.refreshData();
};
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,432评论 25 707
  • 引子 令人仰慕的凹凸大赛终于落幕了,新的王者也出现了!——他就是天使般开朗的金!金成为了——凹凸大赛的冠军。但是...
    保卫小萌金阅读 6,148评论 3 8
  • 简书:简单而又不乏用文字书写近况。 这是我对简书的基本理解。 其实根本就不记得是什么时候下载的简书,什么时候...
    L派大星阅读 178评论 0 0
  • ~鼎然~ 学人问:和尚吃不吃肉? 鼎然:和尚若痴,与吃肉没有区别。和尚不痴,怎能吃肉?所以痴者肉也,不痴不吃肉。 ...
    慈勤阅读 176评论 0 0