2011-01-12 4 views
1

Для загрузки дерева (полная загрузка, а не ленивая загрузка при расширении) мне нужно сделать запрос на ресурс REST на сервере. Проблема в том, что дерево является иерархическим, и в философии REST я могу запросить только один ресурс за раз.RESTful способ загрузить дерево extJS

Как я могу загрузить все дерево, следуя принципам REST?

Спасибо.

+0

Просто осознайте, что все содержимое корня дерева является единственным ресурсом. – Mchl

+0

Я прочитал этот комментарий: http://stackoverflow.com/questions/2654640/multiple-records-with-one-request-in-restful-system/2657230#2657230 и «Есть веская причина не возвращать несколько записей в одном запросе, он менее кэш-памяти и менее масштабируемый " –

ответ

1

Вы можете сделать вызов Ajax, чтобы заполнить объект с полной иерархией деревьев, а затем ссылаться на этот объект в вашей конфигурации дерева. Ваш веб-ресурс REST, очевидно, должен вернуть объект JSON, представляющий ваше дерево, в правильном формате (пример ниже).

//populate this with results from Ajax call 
var rootNode = { 
    text  : 'Root Node', 
    expanded : true, 
    children : [ 
     { 
      text : 'Child 1', 
      leaf : true 
     }, 
     { 
      text : 'Child 2', 
      leaf : true 
     }, 
     { 
      text  : 'Child 3', 
      children : [ 
       { 
        text  : 'Grand Child 1', 
        children : [ 
         { 
          text : 'Etc', 
          leaf : true 
         } 
        ] 
       } 
      ] 
     } 
    ] 
} 

var tree = { 
    xtype  : 'treepanel', 
    id   : 'treepanel', 
    autoScroll : true, 
    root  : rootNode 
} 
Смежные вопросы