AppStore implementa tre API di dojo.data: Lettura, Scrittura e Identità. Leggere la seguente documentazione di riferimento su ciascuna di queste API:
Questa è un'API astratta che le implementazioni dei provider di dati seguono. Per maggiori informazioni sulle API dojo.data, visitare il sito . http://www.dojotoolkit.org/node/98.
Riepilogo funzioni | |
---|---|
Object | getValue(elemento Object, attributo String, defaultValue String) Recupera il valore dell'attributo denominato nell'elemento specificato |
Array | getValues(elemento Object, attributo String) Recupera i valori dell'attributo denominato nell'elemento specificato |
Array | getAttributes(elemento Object) Restituisce una matrice con tutti gli attributi di questo elemento |
Boolean | hasAttribute(elemento Object, attributo String) Restituisce vero se l'*elemento* specificato ha un valore per l'*attributo* specificato |
Boolean | containsValue(elemento Object, attributo String, valore Object) Restituisce vero se il *valore* specificato è uno dei valori che il metodo getValues restituisce |
Boolean | isItem(elemento Object) Restituisce se *componente* è un elemento e viene da questa istanza di archivio |
Boolean | isItemLoaded(elemento Object) Restituisce se *componente* viene caricato nella memoria locale |
void | loadItem(Object keywordArgs) Specificato un elemento, questo metodo carica l'elemento in modo che una chiamata successiva a store.isItemLoaded(item) restituisca true |
Object | fetch(Object keywordArgs) Specificata una query e una serie di opzioni definite, quali un un avvio e un conteggio degli elementi da restituire, questo metodo esegue la query e rende i risultati disponibili come elementi di dati |
Object | getFeatures() Restituisce un oggetto semplice di valori di parole chiave che specifica le funzioni di interfaccia che vengono implementate dall'archivio dati |
void | close(richiesta Object) Istruisce l'archivio per chiudere tutte le informazioni associate con una richiesta particolare |
Stringa | getLabel(elemento Object) Metodo per esaminare l'elemento e restituire un'etichetta leggibile dall'utente per l'elemento che fornisce una descrizione generale o adeguata dell'elemento |
Array | getLabelAttributes(elemento Object) Metodo per esaminare l'elemento e restituire una matrice degli attributi dell'elemento usati per generare la relativa etichetta, se esiste |
Dettagli della funzione |
---|
L'elemento x che non dispone di un valore per un attributo y è uguale a un elemento
x che non dispone di un attributo y. È un oxymoron in base al quale è presente un attributo
che non dispone di valori o un elemento che dispone di un attributo
ma non dispone di alcun valore di attributo. Se store.hasAttribute(elemento, attributo)
restituisce false, store.getValue(elemento, attributo) restituisce undefined.
var darthVader = store.getValue(lukeSkywalker, "father");
Questo metodo getValues() funziona come il metodo getValue(), ma getValues() restituisce sempre una matrice piuttosto che un valore attribute univoco. La matrice potrebbe essere vuota, contenere un valore attribute univoco o contenere valori attribute multipli. Se l'elemento non dispone di un valore per l'attributo specificato, getValues() restituisce una matrice vuota: []. Se store.hasAttribute(elemento, attributo) restituisce false, store.getValues(elemento, attributo) restituisce [].
var friendsOfLuke = store.getValues(lukeSkywalker, "friends");
Restituisce una matrice con tutti gli attributi di cui dispone questo elemento. Questo metodo restituisce sempre una matrice. Se l'elemento non dispone di tutti gli attributi, getAttributes() restituisce una matrice vuota: [].
var array = store.getAttributes(kermit);
Restituisce vero se l'*elemento* specificato ha un valore per l'*attributo* specificato
var trueOrFalse = store.hasAttribute(kermit, "color");
Restituisce vero se il *valore* specificato è uno dei valori che il metodo getValues restituisce.
var trueOrFalse = store.containsValue(kermit, "colore", "verde");
Restituisce se *componente* è un elemento e viene dall'istanza di archivio. Restituisce false se *componente* è un valore letterale, un elemento proveniente da un'altra istanza di archivio o un altro oggetto diverso da un elemento.
var yes = store.isItem(store.newItem()); var no = store.isItem("green");
Restitusce false se isItem(something) è false. Restituisce false se isItem(something) è true ma l'elemento non è ancora caricato nella memoria locale. Ad esempio un valore false viene restituito se l'elemento non è ancora stato letto dal server.
var yes = store.isItemLoaded(store.newItem()); var no = store.isItemLoaded("green");
Specificato un elemento, questo metodo carica l'elemento in modo che una chiamata successiva a store.isItemLoaded(item) restituisca true. Se una chiamata a isItemLoaded() restituisce true prima che loadItem() venga chiamato, loadItem() non funziona e non richiama i gestori di richiamata. Prima di richiamare questo metodo, verificare che l'elemento non sia stato caricato precedentemente.
{ item: object, onItem: Function, onError: Fuction, ambito: object }
Specificata una query e una serie di opzioni definite, quali un un avvio e un conteggio degli elementi da restituire, questo metodo esegue la query e rende i risultati disponibili come elementi di dati. Il formato degli archivi dati previsti dell'API dojo.data di solito funziona in maniera asincrona; pertanto, le richiamate sono utilizzate per restituire gli elementi individuati dai parametri di apertura.
Un oggetto di richiesta viene subito restituito. La richiesta di base sono gli argomento della parola chiave, sottoposti a lettura e a un'ulteriore funzione allegata, interruzione (). L'oggetto di richiesta restituito potrebbe essere usato per eliminare una lettura. Tutti gli elementi di dati restituiti vengono approvati mediante le richiamate definite nei parametri di lettura e non sono presenti nell'oggetto 'richiesta'.
Questo processo non indica che gli archivi personalizzati non possono aggiungere metodi e proprietà all'oggetto di richiesta restituito, indica soltanto che l'API non lo richiede. Per maggiori informazioni sulla richiesta, vedere dojo.data.api.Request.
{ query: query-stringa o query-oggetto, queryOptions: object, onBegin: Function, onItem: Function, onComplete: Function, onError: Fuction, scope: object, start: int count: int sort: array }
{ ignoreCase: boolean, //Sia che la query debba corrispondere al maiuscolo e al minuscolo o che non debba corrispondervi. Il comportamento predefinito è false. deep: booleano //Sia che una lettura debba effettuare o non effettuare una ricerca degli elementi e di tutti gli elementi secondari //invece di elementi solo a livello della radice in un archivio dati. Il valore predefinito è false. }
{ attributo: attributo || attributo-nome-stringa, decrescente: true|false; // Opzionale. Il valore predefinito è false. }Quando si confrontano gli attributi, se un elemento non contiene alcun valore per l'attributo (indefinito), la logica di ordine decrescente predefinita lo spinge alla base dell'elenco. In caso di ordine decrescente, se questo tipo di elementi sono posizionati nella parte superiore dell'elenco.
L'oggetto di richiesta può inoltre disporre di proprietà aggiuntive quando viene restituito, quali la proprietà request.store, ad esempio, che è un puntatore per l'oggetto dell'archivio dati dove la lettura() è un metodo.
// Leggere tutti i libri identificati dalla query e chiamare 'showBooks' al termine var request = store.fetch({query:"all books", onComplete: showBooks}); // Leggere tutti gli elementi nell'archivio e chiamare 'showEverything' al termine. var request = store.fetch(onComplete: showEverything); // Leggere soltanto 10 libri che corrispondono alla query "tutti i libri", iniziando dal quinto libro individuato durante la ricerca. // In tal modo viene dimostrato come eseguire il paging per query specifiche. var request = store.fetch({query:"all books", start: 4, count: 10, onComplete: showBooks}); // Leggere tutti gli elementi che corrispondono alla query, chiamando la "richiamata" ogni volta che un elemento viene riposizionato. var request = store.fetch({query:"foo/bar", onItem:callback}); // Leggere i primi 100 libri dell'autore King, chiamando showKing quando sono stati posizionati fino a 100 elementi. var request = store.fetch({query:{author:"King"}, start: 0, count:100, onComplete: showKing}); // Posizionare i libri scritti dall'autore King. Ordinarli per titolo ed editore, quindi ritornare ai primi 100 elementi degli elementi ordinati. var request = store.fetch({query:{author:"King"}, sort: [{ attribute: "title", descending: true}, {attribute: "publisher"}], ,start: 0, count:100, onComplete: 'showKing'}); // Leggere i primi 100 libri di autori iniziando con il nome King, quindi chiamare showKing quando sono stati posizionati fino a 100 elementi. var request = store.fetch({query:{author:"King*"}, start: 0, count:100, onComplete: showKing}); // Leggere i primi 10o libri di autori che terminano per "ing" e presentano una sola lettera prima di questo (King, Bing, Ling, Sing, ecc.), quindi chiamare showBooks quando sono stati posizionati // fino a 100 elementi. var request = store.fetch({query:{author:"?ing"}, start: 0, count:100, onComplete: showBooks}); // Leggere i primi 100 llibri dell'autore King, dove il nome viene visualizzato come King, king, KING, kInG e così via, quindi chiamare showKing quando sono stati posizionati fino a 100 elementi. var request = store.fetch({query:{author:"King"}, queryOptions:(ignoreCase: true}, start: 0, count:100, onComplete: showKing}); // Paging: var store = new dojo.data.LargeRdbmsStore({url:"jdbc:odbc:foobar"}); var fetchArgs = { query: {type:"employees", name:"Hillary *"}, // stringa corrispondente ordine: [{attribute:"department", descending:true}], start: 0, count: 20, scope: displayer, onBegin: showThrobber, onItem: displayItem, onComplete: stopThrobber, onError: handleFetchError, }; store.fetch(fetchArgs); // ... // Quando l'utente preme il pulsante "Pagina successiva"... fetchArgs.start += 20; store.fetch(fetchArgs); // passare ai 20 elementi successivi
var request = store.fetch({onComplete: doSomething}); //... store.close(request);
Questa è un'API astratta che le implementazioni dei provider di dati seguono. Questa API specifica le funzioni necessarie per scrivere su un archivio di dati.
Riepilogo funzioni | |
---|---|
Object | getFeatures() Consultare dojo.data.api.Read.getFeatures |
Object | newItem(Object keywordArgs) Restituisce un nuovo oggetto creato |
Boolean | deleteItem(Object item) Elimina un elemento dall'archivio |
Boolean | setValue(elemento Object, attributo String, valore Object) Imposta il valore di un attributo in un elemento, sostituendo ogni valore o valori precedenti |
Boolean | setValues(elemento Object, attributo String, valori Array) Aggiunge ciascun valore nella matrice *valori* come valore dell'attributo specificato nell'elemento specificato, sostituendo ogni precedente valore o valori |
Boolean | unsetAttribute(elemento Object, attributo String) Elimina tutti i valori di un attributo in elemento |
Boolean | salva(keywordArgs) Salava tutte le modifiche effettuate a livello locale nel server |
Boolean | revert() Scarta tutte le modifiche non salvate |
Boolean | isDirty(elemento) Specificato un elemento, isDirty(), restituisce true se l'elemento è stato modificato dall'ultimo completamento del metodo di salvataggio |
Dettagli della funzione |
---|
var kermit = store.newItem({name: "Kermit", color:[blue, green]});
var success = store.deleteItem(kermit);
var success = store.set(kermit, "color", "green");
var success = store.setValues(kermit, "color", ["green", "aqua"]); success = store.setValues(kermit, "color", []); se (success) {assert(!store.hasAttribute(kermit, "color"));}
var success = store.unsetAttribute(kermit, "color"); se (success) {assert(!store.hasAttribute(kermit, "color"));}
{ onComplete: function onError: function ambito: object }
store.save({onComplete: onSave}); store.save({scope: fooObj, onComplete: onSave, onError: saveFailed});
var success = store.revert();
var trueOrFalse = store.isDirty(kermit); // true se kermit è danneggiato var trueOrFalse = store.isDirty(); // true se qualsiasi elemento è danneggiato
Questa è un'API astratta che le implementazioni dei provider di dati seguono. Le funzioni definite recuperano l'identità singola di un elemento, nonché gli attributi che hanno fornito l'identità.
Riepilogo funzioni | |
---|---|
Object | getFeatures() Consultare dojo.data.api.Read.getFeatures |
Object | getIdentity(elemento Object) Restituisce un identificatore univoco per un elemento |
Array | getIdentityAttributes(elemeto Object) Restituisce una matrice di nomi di attributi usati per generare l'identità |
Object | fetchItemByIdentity(keywordArgs Object) Specificata l'identità di un elemento, questo metodo restituisce l'lemento che presenta questa identità mediante la richiamata onItem |
Dettagli della funzione |
---|
var itemId = store.getIdentity(kermit); asserzione(kermit === store.findByIdentity(store.getIdentity(kermit)));
var itemId = store.getIdentity(kermit); var identifiers = store.getIdentityAttributes(itemId); asserzione(typeof identifiers === "matrice" || identificatori === null);
{ identità: stringa|oggetto, onItem: Function, onError: Fuction, ambito: object }