2012-04-26 3 views
0

Я пытаюсь загрузить вложенный список в мое приложение Sencha. Проблема в том, что я не знаком с этим, и я не уверен, правильно ли используется json-файл, который я использую.Вложенный список не загружается в sencha

[ 
    { 
     "text":[ 


      { 
       "text":"1.1.1", 
       "leaf":true 

      }], 
     "text":[ 

      { 
       "text":"1.1.1", 
       "leaf":true 

      } 
     ] 


    } 
] 

Это мой магазин код

//Defining the store for the Nested List 
Ext.define('InfoImage.store.nestedListStore', { 
    extend: 'Ext.data.TreeStore', 
    requires: 'InfoImage.model.nestedListModel', 
    id:'nestedListStore', 
    config:{ 

     //Calling the required model for the Work Item List 
     model : 'InfoImage.model.nestedListModel', 
     //Defining the proxy for the Work Item List to pull the data for the List 
     proxy : { 
      type : 'ajax', 
      url : 'app/model/data/list.json', 
      reader: { 
       type: 'json', 
       root: 'items' 

      } 
     }, 
     autoLoad: true 


    } 
}); 

и мой основной код

Ext.define("InfoImage.view.nestedList", { 
    extend:'Ext.NestedList', 
    xtype:'nestedList', 
    id:'nestedList', 

    config:{ 
     fullscreen:'true', 
     title:'Nested List', 
     xtype:'nestedList', 
     //displayField : 'text', 
     html:'Nested List on its way!!!', 
     store:'nestedListStore' 
     //itemTpl:'{text}' 
    } 
}); 

Выходные то будет отображаться в [объект объект]. Я не знаю, чего не хватает. Любая помощь приветствуется.

ответ

0

Кажется, что ваш JSON не может работать с Ext.NestedList, потому что text - это поле вашей модели, и оно не должно быть объявлено как rootProperty в вашем файле JSON.

Во-первых, предположим, что у вас есть такое определение модели:

Ext.define('ListItem', { 
    extend: 'Ext.data.Model', 
    config: { 
     fields: ['text'] 
    } 
}); 

Согласно данных, файл JSON должен выглядеть следующим образом:

items: [ 
{ 
    text: '1.1', 
    items: [ 
    { text: '1.1.1', leaf: true }, 
    { text: '1.1.2', leaf: true } 
    ] 
    } 
] 

Вы должны добавить этот конфиг в свой магазин defaultRootProperty: 'items'

1

Во-первых, ваш Json является ДЕЙСТВИТЕЛЬНЫМ json. Всегда проверяйте действительный JSON, вставив на jsonlint.com JSON

Во-вторых, я вижу, что вы закомментирована свойство

displayField:'text' 

. Если вы не укажете displayField на номер nestedlist, он не узнает, какие элементы из хранилища данных будут отображаться в списке.

Возможно, именно поэтому вы получаете [object Object] как ваш o/p в списке.

Разоружение вышеуказанной строки и проверка.

+0

Я попытался использовать его, но это работа. Поэтому я прокомментировал, что это правильный код. Я разобрал его и попробовал еще раз. Все еще не работает. – Khush

+0

Это дает вам такую ​​же ошибку? Можете ли вы также опубликовать код для своей модели? –

 Смежные вопросы

  • Нет связанных вопросов^_^