起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1191|回复: 4

[结贴] modelParamsReceive和ajax冲突

[复制链接]

8

主题

21

帖子

49

积分

新手上路

Rank: 1

积分
49
QQ
发表于 2016-4-26 11:09:06 | 显示全部楼层 |阅读模式
var pminfoBillno;
        var operatorName;
        Model.prototype.modelParamsReceive = function(event){
                pminfoBillno =  this.params.pminfoBillno;
                operatorName = this.params.operatorName;       
                //查询订单详细
                Model.prototype.orderCustomRefresh(event);                  
        };
       
        Model.prototype.orderCustomRefresh = function(event){
                var order = self.comp('order');
                var params = {
                                "columns":baas.getDataColumns(order),
                                "limit":10,
                                "offset":0,
                                "pminfoBillno":pminfoBillno,
                                "memberCode":localStorage.getItem('memberCode')
                };
                var success = function(resultData) {
                        order.clear();
                        order.loadData(resultData);
                        order.first();                       
                        var state = order.val("dataBillstateStr");
                        var message = order.val("message");
                        var pminfoMoney = order.val("pminfoMoney");
                        var accountSmoney = order.val("accountSmoney");
                        //无法操作的情况
                        Boolean flag = checkOrder(state,message,pminfoMoney,accountSmoney);                       
                        if(!flag){
                                $(".payBtn").attr("disabled",true);
                        }
                        //金额1000-5000输入手机验证码
                        if(parseFloat(pminfoMoney) >= parseFloat("1000.00") && parseFloat(pminfoMoney) <= parseFloat("5000.00")){
                                $(".phone").attr("style","display:block");
                                $(".check").attr("style","display:block");
                        }                                       
                        };
                baas.sendRequest({
                        "url" : "/mobile-exchange/paymentQuery.htm",
                        "action":"getOrderDetail",
                        "params" : params,
                        "success" : success
                });
        };

我用modelParamsReceive事件接收到上一个页面传递过来的参数后,调用orderCustomRefresh把参数作为条件查询数据,但是执行'modelParamsReceive'时报错,说'prototype'undefined;我试过只要把orderCustomRefresh里面的ajax注释掉,程序就能正常运行,整个js文件里只要有ajax就会报上述错误,我data的autoload已设置false;
发表于 2016-4-26 15:59:55 | 显示全部楼层
你不能直接这样手动调用啊!!
orderCustomRefresh 是自定义刷新事件!!
调用刷新的使用自动触发的!!

你在modelParamsReceive 中应该调用
this.comp('dataXid').refreshData();
直接调用刷新就行了!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

8

主题

21

帖子

49

积分

新手上路

Rank: 1

积分
49
QQ
 楼主| 发表于 2016-4-26 16:38:03 | 显示全部楼层
        Model.prototype.modelParamsReceive = function(event){       
                pminfoBillno =  this.params.pminfoBillno;
                alert(pminfoBillno);
                operatorName = this.params.operatorName;       
                //查询订单详细
                /*Model.prototype.orderCustomRefresh(event);*/               
                /*this.orderData = this.comp("order");*/
                this.comp('order').refreshData();
                alert(2);
        };
       

        Model.prototype.orderCustomRefresh = function(event){
                alert("fresh");
                var data = event.source;
                var params = {
                                "pminfoBillno":pminfoBillno,
                                "memberCode":localStorage.getItem('memberCode'),
                };
                var success = function(resultData) {
                        /*var append = event.options && event.options.append;
                        data.loadData(resultData, append);*/
                        alert("in");
                        data.clear();
            data.loadData(resultData);
            data.first();               

您好,我在modelParamsReceive 调用this.comp('order').refreshData();但是Model.prototype.orderCustomRefresh 不执行,是因为我把order的auto-load改成false的原因吗?
回复 支持 反对

使用道具 举报

发表于 2016-4-26 18:57:49 | 显示全部楼层
ai3qiu 发表于 2016-4-26 16:38
Model.prototype.modelParamsReceive = function(event){       
                pminfoBillno =  this.params.pminfoBillno;
...

不是的!你要你在data组件的事件上挂载了orderCustomRefresh
调用refreshData绝对能触发的!
你先确定下 .w源码中是否有引用orderCustomRefresh
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

8

主题

21

帖子

49

积分

新手上路

Rank: 1

积分
49
QQ
 楼主| 发表于 2016-4-28 14:58:41 | 显示全部楼层
这个肯定有引用的,就是调用没反应,不过问题解决了,我直接在modelParamReceive事件里写ajax访问数据库了,结贴吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-6-2 12:53 , Processed in 0.064729 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表