当前位置:首页 > 芯闻号 > 充电吧
[导读]EXT4终于发布了,厌倦了EXT3.x生成的臃肿的HTML代码? EXT4在这方面的确做了很大的优化。其中带了资源占用减少和性能的提升。而EXT4引入的MVC模式更是将视图与代码逻辑分离。除了语法上与

EXT4终于发布了,厌倦了EXT3.x生成的臃肿的HTML代码? EXT4在这方面的确做了很大的优化。其中带了资源占用减少和性能的提升。而EXT4引入的MVC模式更是将视图与代码逻辑分离。除了语法上与旧版有些许不同外。上手倒还是很快。但很快遇到的问题也接踵而至。

在EXT4中 CRUD操作甚至能让你从烦人的FORM提交解放出来。直接一条  Store.sync()搞定。非常方便。但马上我便遇到了第一个问题。倘若提交失败,服务器返回的错误信息如何显示?如果只是单条记录的操作,您可以使用 Model的 save方法来完成。例如:

var rs = Ext.ModelManager.create(values,'OA.model.ChangePasswordModel');

			rs.save({
				success:function(r,o)
				{
					var o=Ext.decode(o.response.responseText);  
					Ext.Msg.show({
						title:'温馨提示',
						msg:o.message,
						icon:Ext.Msg.INFO,
						buttons:Ext.Msg.OK,
						fn:function()
						{
							win.close();
						},scope:this
					})
				},
				failure:function(r,o)
				{
					var o = o.request.scope.reader.jsonData;
					Ext.Msg.show({
						title:'温馨提示',
						msg:o["message"],
						icon:Ext.Msg.ERROR,
						buttons:Ext.Msg.OK
					})
				},scope:this
			});			

如果是多条记录的删除操作呢?

在阅读了 Store Bath Proxy等类的源代码后。发现错误信息可以统一使用 侦听exception事件来完成。

遇到的第二个问题是,如果您要删除store中的一些记录可以使用 Store.remove(records)来完成。然后调用 sync 与服务器同步。但如果服务器同步失败……后果是本地已经删除的 记录无法恢复。最后,我只得重写了两个方法。1、在remve的时候将记录保存在要删除的记录列表中。在 onDestroyRecords(私有方法 在服务器返回后调用)。再删除这个列表中的记录。代码如下:


remove: function(records, /* private */ isMove) {
        if (!Ext.isArray(records)) {
            records = [records];
        }

        /*
         * Pass the isMove parameter if we know we're going to be re-inserting this record
         */
        isMove = isMove === true;
        var me = this,
            sync = false,
            i = 0,
            length = records.length,
            isPhantom,
            index,
            record;

        for (; i < length; i++) {
            record = records[i];
            index = me.data.indexOf(record);

            if (me.snapshot) {
                me.snapshot.remove(record);
            }

            if (index > -1) {
                isPhantom = record.phantom === true;
                if (!isMove && !isPhantom) {
                    // don't push phantom records onto removed
                    me.removed.push(record);
                }

                sync = sync || !isPhantom;
            }
        }

        me.fireEvent('datachanged', me);
        if (!isMove && me.autoSync && sync) {
            me.sync();
        }
    },
    onDestroyRecords: function(records, operation, success){

        if (success) {
            var me = this,
                i = 0,
                length = records.length,
                data = me.data,
                snapshot = me.snapshot,
                record;

            for (; i < length; ++i) {
                record = me.getById(records[i].get(records[i].idProperty||'id'));
                if(null !== record)
                {
	                record.unjoin(me);
	                data.remove(record);
	                if (snapshot) {
	                    snapshot.remove(record);
	                }
                }else{
                	console.log(records[i]);
                }
            }
            me.removed = [];
        }
    },




本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

特朗普集团近日取消了其新推出的T1智能手机“将在美国制造”的宣传标语,此举源于外界对这款手机能否以当前定价在美国本土生产的质疑。

关键字: 特朗普 苹果 AI

美国总统特朗普在公开场合表示,他已要求苹果公司CEO蒂姆·库克停止在印度建厂,矛头直指该公司生产多元化的计划。

关键字: 特朗普 苹果 AI

4月10日消息,据媒体报道,美国总统特朗普宣布,美国对部分贸易伙伴暂停90天执行新关税政策,同时对中国的关税提高到125%,该消息公布后苹果股价飙升了15%。这次反弹使苹果市值增加了4000多亿美元,目前苹果市值接近3万...

关键字: 特朗普 AI 人工智能 特斯拉

3月25日消息,据报道,当地时间3月20日,美国总统特朗普在社交媒体平台“真实社交”上发文写道:“那些被抓到破坏特斯拉的人,将有很大可能被判入狱长达20年,这包括资助(破坏特斯拉汽车)者,我们正在寻找你。”

关键字: 特朗普 AI 人工智能 特斯拉

1月22日消息,刚刚,新任美国总统特朗普放出重磅消息,将全力支持美国AI发展。

关键字: 特朗普 AI 人工智能

特朗普先生有两件事一定会载入史册,一个是筑墙,一个是挖坑。在美墨边境筑墙的口号确保边境安全,降低因非法移民引起的犯罪率过高问题;在中美科技产业之间挖坑的口号也是安全,美国企业不得使用对美国国家安全构成威胁的电信设备,总统...

关键字: 特朗普 孤立主义 科技产业

据路透社1月17日消息显示,知情人士透露,特朗普已通知英特尔、铠侠在内的几家华为供应商,将要撤销其对华为的出货的部分许可证,同时将拒绝其他数十个向华为供货的申请。据透露,共有4家公司的8份许可被撤销。另外,相关公司收到撤...

关键字: 华为 芯片 特朗普

曾在2018年时被美国总统特朗普称作“世界第八奇迹”的富士康集团在美国威斯康星州投资建设的LCD显示屏工厂项目,如今却因为富士康将项目大幅缩水并拒绝签订新的合同而陷入了僵局。这也导致富士康无法从当地政府那里获得约40亿美...

关键字: 特朗普 富士康

今年5月,因自己发布的推文被贴上“无确凿依据”标签而与推特发生激烈争执后,美国总统特朗普签署了一项行政令,下令要求重审《通信规范法》第230条。

关键字: 谷歌 facebook 特朗普

众所周知,寄往白宫的所有邮件在到达白宫之前都会在他地进行分类和筛选。9月19日,根据美国相关执法官员的通报,本周早些时候,执法人员截获了一个寄给特朗普总统的包裹,该包裹内包含蓖麻毒蛋白。

关键字: 美国 白宫 特朗普
关闭