参数方法调用Sencha

时间:2013-09-04 06:10:55

标签: html json extjs sencha-touch-2

我试图用list中的参数调用一个方法/函数,但它既没有pasing也没有调用method.Here我的代码。这是我的代码

LIST

var searchfrieandtab=  Ext.create('Ext.List', {
    width: 320,
    height: 290,
    id : 'searchfriendslist1',
    itemTpl: ['<div style="margin:0px;background:#fff;" >'+
              '<table style="margin:0px;padding:0px;height:40px;" width="100%" >'+
              '<tr><td style="padding:2px 5px;width:90%;"><span><img src="data:image/jpeg;base64,{userImage}"/>'+
              '</span><span>{userFirstName}</span></td>'+
              '<td style="padding:2px 10px;width:10%;">'+
              '<img src="resources/img/addplus.png" onclick="invitefriends{\'{userId}\')"/>'+//HERE AM CALLING THE METHOD
              '</td></tr></table></div>'].join(),
    listeners : {
        itemtap: function (list, index, item, record, senchaEvent) {
            if (senchaEvent.event.target.nodeName == 'IMG') {
                var data = record.getData();
                var itemId = data.itemId;
                var itemPurchased = data.itemPurchased;
            }
         }
     }
});

方式

function invitefriends(friendid) {
 alert("check",friendid);

 Ext.Ajax.request({
    //url: App.gvars.apiurl + 'InviteFriends/userID='+App.gvars.userid+'/friendID='+friendid, // url : this.getUrl(),
    url:'http://192.168.1.155:8181/WishList/InviteFriends/userID=1/friendID='+friendid,
    method: "GET",
    useDefaultXhrHeader: false,
    withCredentials: true,
    success: function (response) {
          var respObj = Ext.JSON.decode(response.responseText);
    if(respObj[0].response=="Success"){
        alert(Response)
        Ext.Msg.alert("Invite Friends",respObj[0].MailResponse);
    }else{
       Ext.Msg.alert("Error",respObj[0].errorMsg);
    }

    },
    failure: function (response) {
        Ext.Msg.alert("Error",response.responseText);
    }

});

}

我的代码有什么问题?请帮我解决

2 个答案:

答案 0 :(得分:2)

这件作品是错误的invitefriends{\'。 '{'应该是'('。

您的代码在这里看起来很奇怪"errorMsg": "".您是否尝试在success方法中声明变量?从我可以看到他们没有使用,删除这些行(“errorMsg”和“MailResponse”)。

我正在低估这个问题,因为你没有先检查你的代码是否有错误。

答案 1 :(得分:1)

在list itemtap事件中触发自定义事件。

        listeners : {
            itemtap: function (list, index, item, record, senchaEvent) {
                if (senchaEvent.event.target.nodeName == 'IMG') {
                    var data = record.getData();
                    var itemId = data.itemId;
                    var itemPurchased = data.itemPurchased;
                    this.fireEvent('onItemTap',this,itemId,itemPurchased);
                }

            }
        }

在控制者汉德尔那个事件

Ext.define('SF.controller.TestController', {
    extend : 'Ext.app.Controller',    
    config : {
        refs : {
            searchfriendslist1 : '#searchfriendslist1'
        },
        control :{
            searchfriendslist1 : {
                onItemTap : 'invitefriends'
            }
        }
    },

    viewgiftdetails : function(list,itemId,itemPurchased) {
          console.log(itemId);
          console.log(itemPurchased);
    }
});