Bonjour J'essaie de charger un fichier JSON local dans Sencha Touch 2. J'utilise Phonegap 1.4 et iOS 5, testant dans VM.Impossible de charger le fichier JSON
Voici le code:
Ext.define("User", {
extend: 'Ext.data.Model',
config: {
fields: [
'id', 'name'
],
hasMany: {model: 'Order', name: 'orders'},
proxy: {
type: 'ajax',
url : 'users.json',
reader: {
type: 'json',
root: 'users'
}
}
}
});
Ext.define("Order", {
extend: 'Ext.data.Model',
config: {
fields: [
'id', 'total'
],
hasMany : {model: 'OrderItem', name: 'orderItems', associationKey: 'order_items'},
belongsTo: 'User'
}
});
Ext.define("OrderItem", {
extend: 'Ext.data.Model',
config: {
fields: [
'id', 'price', 'quantity', 'order_id', 'product_id'
],
belongsTo: ['Order', {model: 'Product', associationKey: 'product'}]
}
});
Ext.define("Product", {
extend: 'Ext.data.Model',
fields: [
'id', 'name'
],
hasMany: 'OrderItem'
});
var store = Ext.create('Ext.data.Store', {
model: "User"
});
store.load({
callback: function() {
//the user that was loaded
var user = store.first();
//console.log("Orders for " + user.get('name') + ":")
alert(user.get('name'));
//iterate over the Orders for each User
user.orders().each(function(order) {
console.log("Order ID: " + order.getId() + ", which contains items:");
//iterate over the OrderItems for each Order
order.orderItems().each(function(orderItem) {
//we know that the Product data is already loaded, so we can use the synchronous getProduct
//usually, we would use the asynchronous version (see Ext.data.association.BelongsTo)
var product = orderItem.getProduct();
});
});
}
});
Le fichier JSON:
{
"users": [
{
"id": 123,
"name": "Ed",
"orders": [
{
"id": 50,
"total": 100,
"order_items": [
{
"id" : 20,
"price" : 40,
"quantity": 2,
"product" : {
"id": 1000,
"name": "MacBook Pro"
}
},
{
"id" : 21,
"price" : 20,
"quantity": 3,
"product" : {
"id": 1001,
"name": "iPhone"
}
}
]
}
]
}
]
}
L'alerte dit 'non défini', toute aide? Merci beaucoup
Pouvez-vous voir si le JSON est en train d'être récupéré? Si vous pouvez tester dans le navigateur, puis regardez l'onglet réseau pour voir – sissonb
J'essaie de le tester sur mon serveur web. Peut prendre un moment. – Ricardo
Et si le JSON n'est pas récupéré? Que pouvais-je faire alors? – Ricardo