Sencha Touch 2 - JSONP-proxy helfen, template immer null für die Werte
Bin ich Schwierigkeiten haben, die eigentlichen Daten zu zeigen, bis in einer Sencha Touch 2-Liste. Die Liste sollte ausgefüllt werden, indem eine JSONP-Antwort, und ich erwarte, dass 2 Zeilen zu zeigen. Stattdessen bekomme ich eine Zeile, die mit 'null auf null'.
Hier ist die URL, die gesendet wird:
http://some-server/data-fetcher.php?_dc=1331910031292&events=true&page=1&start=0
&limit=25&callback=Ext.data.JsonP.callback1
Hier ist die JSONP-Antwort:
Ext.data.JsonP.callback1({"data":[{"id":"4","name":"Sample Name 1",
"description":null,"location":"Sample Location 1",
"start_time":"2012-03-22 00:00:00","end_time":null},{"id":"5",
"name":"Sample Name 2","description":null,"location":"Sample Location 2",
"start_time":"2012-03-31 00:00:00","end_time":null}],"num_rows":2});
Hier ist mein Modell:
Ext.define('MyApp.model.Event', {
extend: 'Ext.data.Model',
config : {
idProperty: 'id',
fields : [ {
name : "id",
type : "int"
}, {
name : "name",
type : "string"
}, {
name : "description",
type : "string"
}, {
name : "location",
type : "string"
}, {
name : "start_time",
type : "date"
}, {
name : "end_time",
type : "date"
} ]
}
});
Hier ist mein Shop:
Ext.define('MyApp.store.EventsOnline', {
extend : 'Ext.data.Store',
requires: ['MyApp.model.Event'],
config : {
model : 'MyApp.model.Event',
autoLoad : true,
proxy : {
type : 'jsonp',
url : 'http://some-server/data-fetcher.php',
reader : {
type : 'json',
root : 'data',
totalCount : 'num_rows'
},
callbackKey : 'callback',
extraParams : {
'events' : true
}
}
}
});
Hier ist meine Ansicht:
Ext.define('MyApp.view.Event', {
extend: 'Ext.Container',
config : {
layout : {
type : 'vbox',
align : 'stretch'
},
fullscreen : true,
flex : 1,
items : [
{
xtype : 'toolbar',
docked : 'top',
title : 'Events'
}, {
xtype : 'list',
flex : 1,
store : 'EventsOnline',
itemTpl : '{name} at {location}'
}
]
}
});
Was ich erwarte, um zu sehen, in meiner Liste ist:
Sample Name 1 at Sample Location 1
Sample Name 2 at Sample Location 2
Und stattdessen alle ich sehe, ist:
null at null
Was mache ich falsch?
Edit: wenn es darauf ankommt, sind hier meine app und controller:
Ext.Loader.setConfig({enabled : true});
Ext.application({
name : 'MyApp',
appFolder : 'app',
controllers : ['Home'],
launch : function() {
window[this.getName()].app = this;
}
});
Ext.define('MyApp.controller.Home', {
extend: 'Ext.app.Controller',
models: ['Event'],
stores: ['EventsOnline'],
views: ['Event'],
init: function () {
var me = this;
Ext.Viewport.add(Ext.create('MyApp.view.Event'));
}
});
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist veraltet. Verwendung:
Stellen Sie sicher, Sie enthalten Sencha Touch von
sencha-touch-all-compat.js
für die Entwicklung. Es werde der Bericht in der browser-Konsole alle veraltet, Dinge, die Sie verwenden.War ich auch kämpfen, um meine Liste und Suche viele auf diese.
Endlich meine Antwort nach änderung dies ist in meinen Augen:
zu
Bekam ich den oben genannten Hinweis aus der Beispiel-link unten!
Sencha Touch 2: Daten intigration oder zum freigeben von dynamischen Informationen zwischen sencha und javascript
Es funktioniert jetzt, glücklich zu sehen, meine erste MVC-Beispiel arbeiten 🙂
Hoffe, es hilft jemand.