【问题标题】:sencha touch 2 store proxy api reading responsesencha touch 2 store 代理api读取响应
【发布时间】:2012-12-07 05:28:33
【问题描述】:

我有一个配置了代理来更新我的数据库的商店。

代理:{ 类型:“阿贾克斯”, 接口:{ 创建:MySite.app.BaseURL + 'Member.php?action=create', 阅读:MySite.app.BaseURL + 'Member.php', 更新:MySite.app.BaseURL + 'Member.php?action=update', 销毁:MySite.app.BaseURL + 'Member.php?action=delete' },

这一切都很好,但我真正想要的是能够读取响应以便向用户报告更新的成功或失败。

例如当更新成功时,响应中返回下面的json,

{"成功":true,"消息":"更新"}

如果不成功则返回以下内容,

{"success":false,"message":"发生了可怕的事情"}

我尝试如下向商店添加监听器,但这似乎没有得到响应。

    listeners: {

        success: function(response) {

                console.log(response);

                var data = Ext.JSON.decode(response.responseText.trim());

                console.log(data);  

                if(data.success == 'true') {
                console.log('success'); 
                }
        }
    },

有人可以帮忙吗?

【问题讨论】:

    标签: extjs proxy touch store


    【解决方案1】:

    商店不会触发成功事件。这必须在每个操作中使用成功、失败或回调函数进行配置。

    例如,当您执行同步时,您可以执行以下操作:

    myStore.sync({
        success: function(batch, options) {
           console.log(response);
        }
    });
    

    鉴于商店与批次合作,必须查看批次字段才能知道它是否正常。

    【讨论】:

      【解决方案2】:

      成功时,商店将触发“写入”事件。如果出现故障,代理将触发“异常”事件。这个“异常”事件应该冒泡到它的父(商店),所以商店中的听众应该是“写”和“异常”。您可以查找这些事件的参数。对于“写入”事件,参数应该是存储本身和操作。该操作应该包含执行日志记录所需的所有信息或任何您想要的信息。

      【讨论】:

        猜你喜欢
        • 2012-08-02
        • 1970-01-01
        • 1970-01-01
        • 2011-11-26
        • 2014-02-06
        • 2011-10-30
        • 2015-01-10
        • 2012-08-18
        • 1970-01-01
        相关资源
        最近更新 更多