2011-01-20 2 views
2

Я новичок в лестницу/лифта, и я пытаюсь выяснить, лучший способ решить эту конкретную проблему:Lift передачи данных между отрывками

Я создаю страницу, чтобы отобразить структуру нескольких «семей». Я представляю каждую семью как дерево с помощью виджета TreeView TreeView. Мой план состоял в том, чтобы иметь один фрагмент, который будет генерировать список семейств, и другой фрагмент, который будет отображать TreeView одной семьи, и он будет вызван для каждой семьи.

Каков наилучший способ для фрагмента списка для создания списка, чтобы фрагмент древовидной структуры мог иметь доступ к семейному идентификатору для построения дерева для каждой семьи?

Спасибо.

ответ

2

Вы должны быть в состоянии сделать это, вложив два своих фрагмента. В приведенном ниже примере фрагмент families возвращает результат применения (и конкатенации результата) фрагмента bindFamily для каждого из семейств.

XML-:

<lift:FamilyTree.families> 
    <!-- start per-family ui --> 
    <family:tree/> 
    <!-- end per-family ui --> 
</lift:FamilyTree.families> 

и соответствующий код Scala:

def families(xhtml: NodeSeq): NodeSeq = { 
    val families = ... 
    families.flatMap(f => bindFamily(f, xhtml)) 
} 

def bindFamily(f: Family, xhtml: NodeSeq): NodeSeq = { 
    bind("family", xhtml, 
     "tree" -> bindFamilyTree(f, xhtml)) 
} 

def bindFamilyTree(f: Family, xhtml: NodeSeq): NodeSeq = { 
    // return your tree view here. 
} 
Смежные вопросы