2014-10-28 2 views
6

Я пытаюсь понять новую концепцию ассоциации в моделях данных Extjs 5.Модель данных Extjs 5 - имеет много ассоциаций

У меня есть следующие модели

// 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'}, 
    ] 
}); 

У меня есть следующий JSON для пользователя:

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

Когда User модель загружается он должен инициализировать категории магазина с данные.

(Моя Category модель знает, преобразовать число в объект Ид & CategoryName)

По какой-то причине, когда я пытаюсь получать категории пользователей компьютера магазин пуст.

userRecord.categories(); // has no records 

Как я могу заставить это работать?

+0

Вы действительно хотите м-м? Откуда он должен получать категории? –

+0

@EvanTrimboli: Мне действительно нужно, чтобы это отображалось в одну сторону, и у меня есть карта категорий с жесткой кодировкой, поэтому я могу преобразовать идентификатор в его имя. что мне здесь не хватает? – guess

ответ

1

Пожалуйста, попробуйте

// Пользователь

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 
     } 
    } 
}); 
Смежные вопросы