Laden von Daten in das JSON-Store
Ich bin so ziemlich ein Neuling in der Entwicklung von sencha, so dass ich hoffe wirklich, Sie können mir helfen, mit diesem.
Unten können Sie sehen, meine LogIn-Funktionalität 'onSignInCommand", die tatsächlich funktioniert.
Durch das versenden der login-Anfrage an den server, bekomme ich wieder die folgende JSONP-Datei.
Ich mag zum laden der user-Daten (name, Alter,...) zur Verfügung gestellt von der JSON-Datei in ein JSON Speichern. Wie kann ich das umgehen?
{"msg": "OK",
"user": {
"token": "xyz",
"firstName": "Bertha",
"lastName": "Muster",
"age": "24",
}
}
==========
onSigninCommand: function(view, username, password) {
var data1 = username;
var data2 = password;
var me = this;
loginView = me.getLoginView();
if (username.length === 0 || password.length === 0) {
loginView.showSignInFailedMessage('keine eingabe');
return;
}
console.log('Username: ' + username + '\n' + 'Password: ' + password);
Ext.util.JSONP.request({
url: 'http://127.0.0.1:4712/talentcommunity/getuserinfo',
headers: {
'content-type': 'application/x-www-form-urlencoded ; charset=utf-8'
},
method: 'post',
params: {
user: data1,
pw: data2
},
callbackKey: 'callback',
success: function(response) {
console.log(response);
var loginResponse = response;
if (loginResponse.msg == "OK") {
me.signInSuccess();
} else {
loginView.showSignInFailedMessage('token null.');
}
},
failure: function(response) {
loginView.showSignInFailedMessage('token null.');
}
});
Bearbeitete ich Erfolg Funktion innerhalb 'onSignInCommand", wie Sie sagte. Aber es nicht ausführen-XXX.store.MyJsonPStore.loadData(jsonResponse).
Der Store selbst ist definiert in einer eigenen Datei, siehe unten.
Könnten Sie mir helfen ein weiteres mal?
onSigninCommand: function(view, username, password) {
var data1 = username;
var data2 = password;
var me = this;
loginView = me.getLoginView();
if (username.length === 0 || password.length === 0) {
loginView.showSignInFailedMessage('keine eingabe');
return;
}
console.log('Username: ' + username + '\n' + 'Password: ' + password);
Ext.util.JSONP.request({
url: 'http://127.0.0.1:4712/talentcommunity/getuserinfo',
headers: {
'content-type': 'application/x-www-form-urlencoded ; charset=utf-8'
},
method: 'post',
params: {
user: data1,
pw: data2
},
callbackKey: 'callback',
success: function (response) {
console.log(response);
var loginResponse = response;
if (loginResponse.msg == "OK") {
var jsonResponse = Ext.JSON.decode(response.responseText);
XXXne.store.MyJsonPStore.loadData(jsonResponse);
me.signInSuccess();
}
else {
loginView.showSignInFailedMessage('token null.');
}
},
failure: function(response) {
loginView.showSignInFailedMessage('token null.');
}
});
=============
Ext.define('xxx.store.MyJsonPStore', {
extend: 'Ext.data.Store',
alias: 'store.myStore',
requires: [
'xxx.model.user'
],
config: {
model: 'xxx.model.user',
storeId: 'myStore',
proxy: {
type: 'jsonp',
url: 'http://127.0.0.1/talentcommunity/getuserinfo',
autoAppendParams: false,
reader: {
type: 'json'
}
}
}
});
Du musst angemeldet sein, um einen Kommentar abzugeben.
Finden Sie auf sencha-api: Modell erstellen/speichern
1. Generieren Sie Ihr Modell/store mit gleichen Feldnamen:
2. das laden der Daten auf speichern:
Auf "Ext.util.JSONP.Antrag":
aber ich bevorzuge die proxy-config auf Lager: