日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 芯聞號 > 充電吧
[導讀]EXT4終于發(fā)布了,厭倦了EXT3.x生成的臃腫的HTML代碼? EXT4在這方面的確做了很大的優(yōu)化。其中帶了資源占用減少和性能的提升。而EXT4引入的MVC模式更是將視圖與代碼邏輯分離。除了語法上與

EXT4終于發(fā)布了,厭倦了EXT3.x生成的臃腫的HTML代碼? EXT4在這方面的確做了很大的優(yōu)化。其中帶了資源占用減少和性能的提升。而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等類的源代碼后。發(fā)現(xiàn)錯誤信息可以統(tǒng)一使用 偵聽exception事件來完成。

遇到的第二個問題是,如果您要刪除store中的一些記錄可以使用 Store.remove(records)來完成。然后調用 sync 與服務器同步。但如果服務器同步失敗……后果是本地已經(jīng)刪除的 記錄無法恢復。最后,我只得重寫了兩個方法。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?=?[];
????????}
????},




本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉