sto accede a un servizio REST che espone queste due risorse, una risorsa genitore e una risorsa bambino:Accesso alle risorse REST complessi con Ext JS
/users
/users/{userId}/account
Così il "conto" risorsa non è nidificato all'interno della risorsa " utente ", deve essere accessibile da una seconda richiesta. Esistono esempi per tali API REST, ad es. here
io uso questi modelli per mappare gli utenti ei loro account al Ext JS modello di 4 dati:
utente
Ext.define("MyApp.model.User", {
extend: "Ext.data.Model",
fields: [ { name: "id", type: "string" }],
associations: [{
model: "MyApp.model.Account",
name: "account",
type: "hasOne",
reader: "json",
getterName: "getAccount",
setterName: "setAccount",
foreignKey: "accountId"
}
],
proxy: {
type: "rest",
url: "/rest/users",
reader: {
type: "json",
totalProperty: "total",
root: "users"
}
}
});
account
Ext.define("MyApp.model.Account", {
extend: "Ext.data.Model",
fields: [ { name: "id", type: "string" }],
belongsTo: "MyApp.model.User",
proxy: {
type: "rest",
reader: { type: "json"}
}
});
L'account proxy non ha un URL (speravo che sarebbe stato creato sulla base del tuo genitore modello di ser). Quando chiamo user.getAccount() ottengo un'eccezione perché al proxy manca l'url.
Domanda: C'è qualche modo per configurare i modelli in modo tale che Ext JS accederà/utenti/{} userId/account senza aggiornare manualmente l'account proxy URL con ogni userId genitore?
Il modello di account ha realmente il proprio ID? Ciò non sembra necessario se esiste una relazione uno a uno tra account e utente. – rixo
giusto, l'ID account non è richiesto. – Christoph