1

在我的应用程序中,我使用了 Ext.Viewport.setMasked 函数,当我调用正确显示的处理掩码时。但在成功时没有禁用。这是我的代码

    {
    Ext.Viewport.setMasked({
    xtype: 'loadmask',
    message: 'Processing...',
    indicator: true
    });
    var data = Ext.JSON.encode(obj);
    Ext.Ajax.request({
    url: App.gvars.apiurl + 'AddItem', // url : this.getUrl(),
    method: "POST",
    params: data,
    useDefaultXhrHeader: false,
    withCredentials: true,
    success: function (response) {
        var respObj = Ext.JSON.decode(response.responseText);
                 if(respObj[0].response=="Success"){
                 Ext.Viewport.setMasked(false); 
        Ext.Msg.alert("Success", "A new wish has been added To Ur Wish List");
                 viewgiftlist();
                 goitems();
                 }
                 else{
                 Ext.Viewport.setMasked(false);
                 Ext.Msg.alert("Error",respObj[0].errorMsg);
                 }
         },
     failure: function (response)
        {
        Ext.Msg.alert("Error",response.responseText);
       }});
      }

请帮我解决问题

4

2 回答 2

0

正确的用法其实是 Ext.Viewport.setMasked(false);

我的猜测是您的成功条件无法正常工作。如果您使用控制台,这对您来说应该很容易解决!启动 Chrome,按 F12 并使用您的控制台。解码响应后使用console.log,然后您可以正确调试它。

var respObj = Ext.JSON.decode(response.responseText);
console.log(respObj);

此外,不确定为什么您的响应的成功部分会是一个数组,通常响应看起来像这样:

{"success":true,"data":[{"id":"1","first_name":"Test","last_name":"Test"}],"total":1}

显然,您可以按照自己的意愿制作它们,但对我来说看起来很奇怪。使用上面的 JSON,条件将如下所示:

if(respObj.success) {
于 2013-11-07T19:29:40.260 回答
0

您没有在失败消息中给出 setmask(false) ..您得到成功响应还是失败?

于 2013-11-05T19:53:27.527 回答