Ext.js - Data
Pakiet danych służy do wczytywania i zapisywania wszystkich danych w aplikacji.
Pakiet danych ma wiele klas, ale najważniejsze to -
- Model
- Store
- Proxy
Model
Podstawową klasą modelu jest Ext.data.Model. Reprezentuje jednostkę w aplikacji. Wiąże dane sklepu do wyświetlenia. Ma mapowanie obiektów danych zaplecza do widoku dataIndex. Dane są pobierane za pomocą sklepu.
Tworzenie modelu
Aby stworzyć model, musimy rozszerzyć klasę Ext.data.Model i zdefiniować pola, ich nazwy oraz mapowanie.
Ext.define('StudentDataModel', {
extend: 'Ext.data.Model',
fields: [
{name: 'name', mapping : 'name'},
{name: 'age', mapping : 'age'},
{name: 'marks', mapping : 'marks'}
]
});
Tutaj nazwa powinna być taka sama jak dataIndex, którą deklarujemy w widoku, a mapowanie powinno pasować do danych statycznych lub dynamicznych z bazy danych, które mają zostać pobrane za pomocą store.
Sklep
Podstawową klasą sklepu jest Ext.data.Store. Zawiera dane przechowywane lokalnie w pamięci podręcznej, które mają być renderowane na widoku za pomocą obiektów modelu. Sklep pobiera dane przy użyciu serwerów proxy, które mają ścieżkę zdefiniowaną dla usług do pobierania danych zaplecza.
Dane sklepu można pobierać na dwa sposoby - statyczny lub dynamiczny.
Sklep statyczny
W przypadku sklepu statycznego będziemy mieć wszystkie dane obecne w sklepie, jak pokazano w poniższym kodzie.
Ext.create('Ext.data.Store', {
model: 'StudentDataModel',
data: [
{ name : "Asha", age : "16", marks : "90" },
{ name : "Vinit", age : "18", marks : "95" },
{ name : "Anand", age : "20", marks : "68" },
{ name : "Niharika", age : "21", marks : "86" },
{ name : "Manali", age : "22", marks : "57" }
];
});
Sklep dynamiczny
Dane dynamiczne można pobrać za pomocą proxy. Możemy mieć proxy, które może pobierać dane z Ajax, Rest i Json.
Pełnomocnik
Klasą bazową serwera proxy jest Ext.data.proxy.Proxy. Serwer proxy jest używany przez modele i sklepy do obsługi ładowania i zapisywania danych modelu.
Istnieją dwa typy serwerów proxy
- Serwer proxy klienta
- Serwer proxy
Serwer proxy klienta
Serwery proxy klienta obejmują pamięć i lokalną pamięć masową przy użyciu lokalnego magazynu HTML5.
Serwer proxy
Serwery proxy obsługują dane ze zdalnego serwera przy użyciu Ajax, danych Json i usługi Rest.
Defining proxies in the server
Ext.create('Ext.data.Store', {
model: 'StudentDataModel',
proxy : {
type : 'rest',
actionMethods : {
read : 'POST' // Get or Post type based on requirement
},
url : 'restUrlPathOrJsonFilePath', // here we have to include the rest URL path
// which fetches data from database or Json file path where the data is stored
reader: {
type : 'json', // the type of data which is fetched is of JSON type
root : 'data'
},
}
});