扩展代码:

 /*
*扩展carousel
*通过data,tpl,store配置数据
*/
Ext.define('ux.CardList', {
extend: 'Ext.carousel.Carousel',
xtype: 'cardList',
config: {
//单个项配置
itemConfig: {},
//数据展示模版
tpl: null,
//数据源
store: null,
//数据源
data: null
},
//数据源事件
storeEventHooks: {
load: 'onLoad'
},
//填充数据
updateData: function (data) {
var me = this,
store = me.getStore();
if (!store) {
this.setStore(Ext.create('Ext.data.Store', {
data: data,
autoDestroy: true
}));
} else {
store.add(data);
}
},
//创建store
applyStore: function (store) {
var me = this,
bindEvents = Ext.apply({},
me.storeEventHooks, {
scope: me
});
//获取store,绑定事件
if (store) {
store = Ext.data.StoreManager.lookup(store);
store.on(bindEvents);
}
return store;
},
//数据加载成功
onLoad: function (store) {
var me = this,
tpl = me.getTpl(),
config = me.getItemConfig(),
item;
if (tpl) {
//遍历store,动态添加元素
config.tpl = tpl;
store.each(function (record, index, length) {
config.record = record;
//展示数据,绑定点击事件
item = Ext.factory(config, 'Ext.Container');
item.element.on({
scope: me,
tap: 'onItemTap'
});
me.add(item);
});
}
},
//更新store
updateStore: function (newStore, oldStore) {
var me = this,
bindEvents = Ext.apply({},
me.storeEventHooks, {
scope: me
});
//移除绑定事件,销毁
if (oldStore && Ext.isObject(oldStore) && oldStore.isStore) {
oldStore.un(bindEvents);
if (oldStore.getAutoDestroy()) {
oldStore.destroy();
}
}
if (newStore.getCount()) {
this.onLoad(newStore);
}
},
//触发单项点击事件
onItemTap: function () {
var me = this,
item = me.getActiveItem();
me.fireEvent('itemTap', me, me.getActiveIndex(), item, item.getRecord());
}
});

使用示例:

    xtype: 'cardList',
title: '动态',
ui: 'card',
store: 'trendTopList',
height: 231,
tpl: '<div class="imgTitle img" style="background-image:url({TopBarImgPath})"><div class="cardTitle">{Title}</div></div>'

控制层监听:

            cardList: {
initialize: 'listInit',
//和list一样的监听
itemTap: 'itemtap'
}

效果图:

最新文章

  1. 一个高级的J2E工程师需要面对MySQL要有那些基本功夫呢&lt;上&gt;
  2. Visual C# 代码段
  3. Kernel Methods (2) Kernel function
  4. [Linux][Hadoop] 运行WordCount例子
  5. vs2010下编译osip2和eXosip2的4.0.0版的静态库及搭建开发环境
  6. 放到u-boot/arch/arm/inlcude下面解压A20固件库制作笔记
  7. .NET技术+25台服务器怎样支撑世界第54大网站(转)
  8. IIS报错 未将对象引用设置到对象的实例。
  9. 序列化类型为XX的对象时检测到循环引用
  10. githup在线预览demo
  11. hadoop的一些重要配置参数
  12. 使用c语言编写cgi程序
  13. 往github上传demo
  14. My.Ioc 代码示例——Lifetime 和 ILifetimeScope
  15. Android 开发ListView适配器优化
  16. Dede CMS如何在文章中增加&ldquo;附件下载&rdquo;操作说明
  17. css样式表。作用是美化HTML网页.
  18. CI数据库操作_查询构造器类
  19. contos7 go 环境搭建
  20. springBoot(5)---单元测试,全局异常

热门文章

  1. Linq中string转int的方法
  2. FastFel解析一个公式的步骤
  3. 安卓开发笔记——关于Handler的一些总结(上)
  4. VS2013启动浏览器链接(BrowserLink),导致页面脚本错误和页面加载变慢
  5. git push 不再需要重复输入账户密码的技巧
  6. datatable删除一行方法
  7. Openlayers 3计算长度和面积
  8. java stream Api
  9. [Converge] Backpropagation Algorithm
  10. WCF服务支持HTTP(get,post)方式请求例子