2014-10-28 10 views
6

Sto cercando di capire il nuovo concetto di associazione nei modelli di dati Extjs 5.Modello di dati Extjs 5 - ha molte associazioni

ho le seguenti modelli

// User 
Ext.define('App.model.User', { 
    extend: 'App.model.Base',  
    fields: [ 
     {name: 'id', type: 'string'}, 
     {name: 'name', type: 'string'}, 
    ],  
    manyToMany: { 
     Categories: { 
      type: 'Categories', 
      role: 'categories', 
      field: 'categories', 
      right: true 
     } 
    } 
}); 

// Category 
Ext.define('App.model.Category', { 
    extend: 'App.model.Base',  
    constructor: function() {...}, 
    fields: [ 
     {name: 'id', type: 'string'}, 
     {name: 'categoryName', type: 'string'}, 
    ] 
}); 

ho ottenuto il seguente JSON per un utente:

{ "user": { "id": "1", "name": "Foo", "categories": [1, 2, 3] } } 

Quando il modello viene caricato User si deve inizializzare il negozio categorie con il dati.

(Il mio modello Category sa per convertire il numero a un oggetto di id & categoryName)

Per qualche ragione quando cerco di ottenere categorie degli utenti il ​​negozio è vuoto.

userRecord.categories(); // has no records 

Come posso farlo funzionare?

+0

vuoi veramente un m-m? Da dove dovrebbe ottenere le categorie? –

+0

@EvanTrimboli: Ho davvero bisogno che sia mappato in un modo e ho una mappa delle categorie codificata, così posso convertire l'ID nel suo nome. cosa mi manca qui? – guess

risposta

1

Si prega di provare

// utente

Ext.define('User', { 
    extend: 'app.data.Model',  
    fields: [ 
     {name: 'id', type: 'string'}, 
     {name: 'name', type: 'string'}, 
    ],  
    hasMany: { 
     Categories: { 
      type: 'Categories', 
      role: 'categories', 
      field: 'categories', 
      right: true 
     } 
    } 
});