1.store和model的封裝
例外處理,reader的一些通用熟悉要進行封裝。extjs3的時候這些東西都寫到basestore中即可,現在需要寫到store和model中。
安計畫是將proxy封裝到basemodel中,結果發現basemodel使用constructor方法無法解決繼承的問題。即:由於store中引用model不是用create的方法,而是直接指定類,所以建立的時候,basemodel並不執行constructor中的方法。所以proxy的定義只能房到basestore中。
2.關於例外的處理。
在store, model中在與伺服器出現錯誤後,有會有提示,但是不能得到詳細資訊。
store的load事件增加了successful引數,可以知道呼叫是否成功,但是如果失敗,沒辦法得到失敗資訊。
文件中load事件的引數如下:
load( ext.data.store this, array records, boolean successful, ext.data.operation operation, object options ),但是檢視其**發現:
在store的onproxyload方法中**如下:
me.fireevent('load', me, records, successful);也就是說,load事件並無法得到operation和options 的引數。
即使得到operation,operation也只能通過geterror( )這個方法獲得錯誤資訊,這個資訊不夠詳細,只有status和code.
所以要想得到詳細的伺服器錯誤資訊,只能到proxy中。
ajax的proxy的事件exception有如下引數:
exception( ext.data.proxy.proxy this, object response, ext.data.operation operation, object options )
這裡的response可以得到所有返回結果。
以下是封裝後的**:
ext.define('hljs.component.basestore', ;
proxy: ,
api:,
reader: ,
writer:,
listeners:
} }
});
this.callparent([config]);
} ,
onproxyload: function(operation)
this.callparent([operation]);
} ext.define('hljs.component.basemodel', );
3.關於命名空間
原先的hljs.util.pagehelper是乙個單例,取消了ext.namespace,如果還是定義hljs.util.pagehelper = new (function())就會報錯,解決的辦法是:
把原先的定義:ext.namespace("hljs.util");
修改成:
ext.define('hljs.util', );
學習Extjs4心得
其實,學習extjs4的過程中,經常的檢視api。因為一開始接觸這個,所以一開始不會檢視api,但後來玩久了,也就能夠很熟練的玩了。其實,不管事什麼開發語言還是框架,學會檢視api是我們必須要做的事 在開發過程中,最糾結的就是除錯,我用的是firefox,裡面有個firebug,是除錯js的神器,可...
Extjs 4學習系列 二
二章 ext 框架基礎及核心 1 一 類庫簡介 src 資料夾下 1 底層api core資料夾下 2 控制項 3 實用工具 utiles 二 core 案例 使用 core 下的 examplesr 的index.html,此例引用了sample下定義的 person.js 1.建立物件及使用 e...
extjs4的學習之路
以前一直是在做後端的事情,最近做公司的另乙個專案要用到extjs的技術。很少接觸到前端的技術,所以剛開始做的時候是跟著同事的開發文件來做,自己也extjs官網學習,還是遇到很多問題,主要還是對這個技術不熟悉的原因。遇到這些問題有同事在就問同事,同事不在的話就自己網上找。問題也是一點點的解決了。要做乙...