Ext4.2中的Ext.data.Model和Ext.data.Store的區別
一、Ext.data.Model
(1)Model代表應用程式管理的一些物件。例如,我們可能會為 我們想在系統中建模的現實世界中的一些物體像使用者、產品和汽車等定義一個Model。這些Model在 模型管理器中註冊,被Store使用, 而這些Store又被許多 Ext中許多與資料繫結的元件使用.。
Model定義為欄位、任意方法和與模型相關的屬性的集合。例如:
- Ext.define('User', {
- extend: 'Ext.data.Model',
- fields: [
- {name: 'name'
- {name: 'age', type: 'int', convert: null},
- {name: 'phone', type: 'string'},
- {name: 'addree', type: 'string'}
- ],
- changeName: function() {
- var oldName = this.get('name'),
- newName = oldName + " 六指琴魔";
- this.set('name'
- }
- });
建立模型User的例項並呼叫我們定義的任何模型的邏輯:
[javascript] view plain copy- var user = Ext.create('User', {
- name : '六指琴魔',
- age : 26,
- phone: '13800138000'
- });
- user.changeName();
- user.get('name');
- Ext.define('User', {
- extend: 'Ext.data.Model',
- fields: [
- {name: 'name', type: 'string'},
- {name: 'age', type: 'int'},
- {name: 'phone', type: 'string'},
- {name: 'gender', type: 'string'},
- {name: 'username', type: 'string'},
- {name: 'alive', type: 'boolean', defaultValue: true}
- ],
- validations: [
- {type: 'presence', field: 'age'},
- {type: 'length', field: 'name', min: 2},
- {type: 'inclusion', field: 'gender', list: ['Male', 'Female']},
- {type: 'exclusion', field: 'username', list: ['Admin', 'Operator']},
- {type: 'format', field: 'username', matcher: /([a-z]+)[0-9]{2,3}/}
- ]
- });
通過呼叫validate函式能簡單執行驗證, 返回一個Ext.data.Errors 物件:
[javascript] view plain copy
- var instance = Ext.create('User', {
- name: '好原始碼',
- gender: 'Male',
- username: '六指琴魔'
- });
- var errors = instance.validate();
二、Ext.data.Store
(1)Store 大意是: 倉庫、儲存的意思. Store類封裝了一個客戶端快取,用於儲存 Model 物件. Stores 通過一個代理 Proxy 來載入資料, 並提供函式來 排序, 過濾 以及查詢 內部所包含的 model 例項.
建立Store非常簡單 - 我們只需要傳入 Model 以及用來載入/儲存 資料的Proxy作為配置項即可:
- // 建立一個store要使用的 model
- Ext.define('User', {
- extend: 'Ext.data.Model',
- fields: [
- {name: 'firstName', type: 'string'},
- {name: 'lastName', type: 'string'},
- {name: 'age', type: 'int'},
- {name: 'eyeColor', type: 'string'}
- ]
- });
- var myStore = Ext.create('Ext.data.Store', {
- model: 'User',
- proxy: {
- type: 'ajax',
- url: '/users.json',
- reader: {
- type: 'json',
- root: 'users'
- }
- },
- autoLoad: true
- });
(2)內聯資料
Store 也可以載入內部指定的資料. 在內部, Store 將我們傳入的物件作為data,轉換為Model例項。 示例如下:
- Ext.create('Ext.data.Store', {
- model: 'User',
- data : [
- {firstName: 'Ed', lastName: 'Spencer'},
- {firstName: 'Tommy', lastName: 'Maintz'},
- {firstName: 'Aaron', lastName: 'Conran'},
- {firstName: 'Jamie', lastName: 'Avins'}
- ]
- });
(3)過濾與排序
Store 可以進行排序和過濾 - 兩種操作既可以在本地執行,也可以遠端執行. 排序 sorters 和 過濾 filters 都是在 MixedCollection 例項內部執行的, 這種封裝使得容易管理和使用. 通常在 Store的配置項中指定 sorters 和 filters 就可以了,當然也可以呼叫 sort 和 filter 方法:
- var store = Ext.create('Ext.data.Store', {
- model: 'User',
- sorters: [{
- property: 'age',
- direction: 'DESC'
- }, {
- property: 'firstName',
- direction: 'ASC'
- }],
- // 必須包含字母E或者d
-
相關推薦
Ext4.2中的Ext.data.Model和Ext.data.Store的區別
一、Ext.data.Model (1)Model代表應用程式管理的一些物件。例如,我們可能會為 我們想在系統中建模的現實世界中的一些物體像使用者、產品和汽車等定義一個Model。這些Model在 模型管理器中註冊,被Store使用, 而這些Store又被許多 E
玩轉extjs5之Ext.data.Model和Ext.data.Store(四)
一、Ext.data.Model (1)Model代表應用程式管理的一些物件。例如,我們可能會為 我們想在系統中建模的現實世界中的一些物體像使用者、產品和汽車等定義一個Model。這些Model在 模型管理器中註冊,被Store使用, 而這些Store又被許多
呼叫介面的2中方法(conn和httpclient)
import com.ursa.acf.util.StringUtils; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.http.client.methods.*; import org
在Rxjava+Retrofit 2中檢查網路連線和顯示載入框
上篇講到顯示隱藏載入框我們用的RxJava的doOnSubscribe()和doOnTerminate()。這裡我們檢查網路連線同樣是要在傳送網路請求前檢查,能不能也在doOnSubscribe()裡檢查呢,答案是:不能! 為什麼呢?因為doOnS
v-model和v-bind的區別
som 實現 表單 some rdquo 雙向 情況 blank 如果 VUE學習篇1 Mustache (雙大括號寫法)不能在 HTML 屬性中使用,應使用 v-bind 指令: <div v-bind:id="dynamicId"></div&
17-7-20-electron中主進程和渲染進程區別與通信
pcr 識別 pac 多個 coo main 完成 不同的 global 老規矩,先吐槽,再記錄。 今天被上司教育了將近一個小時。因為之前自動更新的模塊,我認為已經完成了,但是還有一些細節沒有完善好,就一直一直的被教育~ 事情全部做完,提交以後關閉issue! elec
轉!!SQL左右連接中的on and和on where的區別
生成 where條件 data- 一個 highlight article 根據 返回 地址 原博文地址:http://blog.csdn.net/xingzhemoluo/article/details/39677891 原先一直對SQL左右連接中的on and和on
Java Thread中,run方法和start方法的區別
bsp 區別 繼續 時間片 ron thread類 等待 nbsp art 兩種方法的區別: 1.start方法 用 start方法來啟動線程,是真正實現了多線程, 通過調用Thread類的start()方法來啟動一個線程,這時此線程處於就緒
GCC 中 -L、-rpath和-rpath-link的區別
目錄 恢復 固定 成功 ref exist fyi man手冊 錯誤 GCC 中 -L、-rpath和-rpath-link的區別 來源 http://blog.csdn.net/q1302182594/article/details/42102961 關於這3個參數的說明
JavaScript中Math.max.apply()和Math.max()的區別
作用 div 調用 class color his arr array this JavaScript中Math.max()方法可以求出給定參數中的最大值,給定參數≥2個,可以使多個,但是必須是數字。 > Math.max(1,2,3,5,9,4); < 9
2.14.1.內核和發行版的區別.zhu
註冊 設備 計算 14. 本質 OS 進程調度 不能 部分 2.14.1.1、到底什麽是操作系統 (1)linux、windows、android、ucos就是操作系統 (2)操作系統本質上是一個程序,由很多個源文件構成,需要編譯連接成操作系統程序(vmlinz、zImag
HTTP中的重定向和請求轉發的區別
response 傳輸 觀察 web應用 ali jpg 處理 size 什麽 一、調用方式 我們知道,在servlet中調用轉發、重定向的語句如下:request.getRequestDispatcher("new.jsp").forward(request, resp
原 jQuery中document的ready和load事件的區別?
一個 log lai space fff num bsp add important 概述: 大家在工作中用jQuery的時候一定會在使用之前這樣: 1 2 3 4 5 6 7 8 //docu
CentOS中的 yum upgrade 和 yum update 的區別
通過 man yum 的幫助資訊瞭解 yum update 和 yum upgrade: update If run without any packages, update will update every currently installed package. If on
js中的作用域和執行上下文的區別
光是從字面上的概念上來理解的話有點繞,其實很好區分。 var a=1; //全域性作用域 function fn1(){ var a=2; //fn1作用域 } 如上程式碼,作用域代表著已宣告變數或者函式的訪問範圍,在fn1作用域內使用變數a會先從當前作用域
【轉載】字元編碼中ASCII、Unicode和UTF-8的區別
1. ASCII碼 我們知道,在計算機內部,所有的資訊最終都表示為一個二進位制的字串。每一個二進位制位(bit)有0和1兩種狀態,因此八個二進位制位就可以組合出256種狀態,這被稱為一個位元組(byte)。也就是說,一個位元組一共可以用來表示256種不同的狀態,每一個狀態對應一個符
Tensorflow 中tf.shape(a)和a.get_shape()的區別
一、tf.shape(a) 和 a.get_shape()比較 相同點:都可以得到tensor a 的尺寸 不同點:tf.shape(a)中a資料的型別可以是tensor,list,array,而a.get_shape()中的a的資料型別必須是tensor,且返回的是一個t
webpack中hash、chunkhash和contenthash三者的區別
在webpack中有時需要使用hash來做靜態資源實現增量更新方案之一,檔名的hash值可以有三種hash生成方式,每一種都有不同應用場景,那麼三者有何區別呢? hash、chunkhash、contenthash hash一般是結合CDN快取來使用,通過webpack構建之後,生成對應檔名
Servlet中關於get提交和post提交的區別
1,生成方式 get的生成方式有4種。1)直接在URL位址列中輸入URL,2)網頁中的超連結,3)form表單中的 method為get,3)form中的method為空的時候,預設為get提交。 post生成方式:form表單中form=post和ajax提交。 2,資
在遊戲中何為音效和混音的區別!
記得看過一本書,書上說聲音是電影的50%.電影的視覺效果搭配上恰當的聲音就能夠營造出一部精彩的電影,醞釀最純的情緒,使故事飽滿而又深刻,那更何況如今火熱的遊戲。自然也少不了音效的功勞,可以說其發展前景不容小噓。 據統計資料