EXTJS4 學習日誌2

2022-07-19 12:18:12 字數 1567 閱讀 8783

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官網學習,還是遇到很多問題,主要還是對這個技術不熟悉的原因。遇到這些問題有同事在就問同事,同事不在的話就自己網上找。問題也是一點點的解決了。要做乙...