动态传递参数

时间:2013-03-30 06:35:14

标签: extjs

我正在尝试使用ExtJS 4从数据库检索图像到数据视图。现在我需要动态传递参数。大多数情况下..........

Ext.define('${pkgName}.v02x003001.SV02X00300102' , {
extend       : 'Ext.view.View',
alias        : 'widget.sv02x00300102',        
id           : 'images-view',
autoScroll   : true,
trackOver    : true,
multiSelect  : true,
height       : 310,
overItemCls  : 'x-item-over',
itemSelector : 'div.thumb-wrap',
emptyText    : 'No images to display',
prepareData  : function(data) {
    Ext.apply(data, {
        shortName : Ext.util.Format.ellipsis(data.name, 15),
        sizeString: Ext.util.Format.fileSize(data.size),
        dateString: Ext.util.Format.date(data.lastmod, "m/d/Y g:i a")
    });
    return data;
},    
initComponent: function() {
    var me   = this;
    var value= Ext.getCmp('member-sv02x00300104').getValue();
    me.store = 'S02X003001',
    me.tpl   = [
                '<tpl for=".">',
                '<div class="thumb-wrap" id="{name}">',
                '<div class="thumb"><img src="${createLink(mapping:'img', params:[member: **value** , width:100, height:100])}" title="{name}"></div>',
                '<span class="x-editable">{shortName}</span></div>',
                '</tpl>',
                '<div class="x-clear"></div>'
               ];

    me.callParent(arguments);
}

});

所以我的问题是如何将设置为参数(对于成员字段)

1 个答案:

答案 0 :(得分:2)

在您的JS代码运行之前,

createLink是一个grails组件,它是进程服务器端。 您无法将JS变量传递给Java组件,因为Java将始终首先在服务器上处理,然后生成的HTML和JS将被发送到客户端进行处理。客户端对您的服务器端代码块一无所知。

我建议你用HTML重写createLink piece,并用JS名称和短名称代替JS变量。