EXTJS中desktop图标显示的问题

dishu2009 2013-01-31 07:17:47
请教一个桌面图标显示的问题,根据页面传递的参数决定图标是否显示,就是这个,实际上就是模板里的APP.JS文件,
getDesktopConfig: function () {
var me = this, ret = me.callParent();
return Ext.apply(ret, {
//cls: 'ux-desktop-black',
contextMenuItems: [
{ text: 'setting', handler: me.onSettings, scope: me }
],
shortcuts: Ext.create('Ext.data.Store', {
model: 'Ext.ux.desktop.ShortcutModel',
data: [

{ name: 'AA', iconCls: 'AA', module: 'AA' ,xs:a1},
{ name: 'BB', iconCls: 'BB', module: 'BB' ,xs:b1},
{ name: 'CC', iconCls: 'CC', module: 'CC' ,xs:c1},
{ name: 'DD', iconCls: 'DD', module: 'DD' ,xs:d1}
]
}),
我在ShortcutModel.js里面重新定义了一下,数组的最后又加一个元素,如上所示,其中a1,b1的值为“0”,c1,d1的值为“1”,我现在想删除XS的值为“0”的元素,就是AA,BB,然后要得到新的DATA数组,新的数组是

[ { name: 'CC, iconCls: 'CC', module: 'CC' ,xs:c1},
{ name: 'DD, iconCls: 'DD', module: 'DD',xs:d1}
],请问我应该怎么做,刚学EXT,就是想实现返回的data数组是删除元素后的新数组,请高手帮帮忙,新手新手,只有这么多的钱了。
另外,在desktop.js中倒是能够实现只显示CC和DD,问题是点CC和DD的时候,实际调用的js是AA和BB的,也就是图标调用的module不是data里面与之对应的
...全文
335 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Go 旅城通票 2013-02-01
  • 打赏
  • 举报
回复
创建view的时候使用的是原始的数据源,但是修改模板后值显示xs为1的项,所以导致事件绑定循序错了

你可以隐藏xs不为1的图标就行了,要不就需要从数据源中删除xs不为1的项

下面为修改tpl隐藏xs!=1的项
    shortcutTpl: [
'<tpl for=".">',

'<div class="ux-desktop-shortcut" id="{name}-shortcut"',
'<tpl if="xs!=1")>', ' style="display:none"', '</tpl>',////////////////隐藏xs不是1的项
'>',
'<div class="ux-desktop-shortcut-icon {iconCls}">',
'<img src="', Ext.BLANK_IMAGE_URL, '" title="{name}">',
'</div>',
'<span class="ux-desktop-shortcut-text">{name}</span>',
'</div>',

'</tpl>',
'<div class="x-clear"></div>'
],
dishu2009 2013-02-01
  • 打赏
  • 举报
回复
亲爱滴版主,在desktop.js中,我是修改的显示数组, shortcutTpl: [ '<tpl for=".">', '<tpl if="xs==1")><div class="ux-desktop-shortcut" id="{name}-shortcut"><div class="ux-desktop-shortcut-icon {iconCls}"><img src="',Ext.BLANK_IMAGE_URL,'" title="{name}"></div><span class="ux-desktop-shortcut-text">{name}</span></div>', '</tpl>', '</tpl>', '<div class="x-clear"></div>' ], 如上所示,这样的话,就是只显示了CC和DD,然后问题就出来了,AA和BB倒是不显示了,但是点击CC和DD的时候,实际上是打开的AA和BB对应的module,我看了一下click事件 onShortcutItemClick: function (dataView, record) { var me = this, module = me.app.getModule(record.data.module), win = module && module.createWindow(); if (win) { me.restoreWindow(win); } },我想问一下,关于连接的ID是不是没有传递到这个click事件里面呀?好像这个里面打开的module还是按照data数组里面元素的顺序排列的,我想问问,怎么把上面图标快捷方式的id传递到这个click事件里面
Go 旅城通票 2013-02-01
  • 打赏
  • 举报
回复
你怎么删除的? 最好是通过使用store对象的remove/removeAt方法来删除,而不是直接操作json,要不不会更新ext的视图
xiesisi3 2013-02-01
  • 打赏
  • 举报
回复
操作JSON对象就可以了。

52,798

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧