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'
        }
     }
  }
});
InformationsquelleAutor Daniel90 | 2013-07-08
Schreibe einen Kommentar