2011-10-16 3 views
6

Voglio creare un elenco di elementi e avere un collegamento ipertestuale su ognuno di essi che esegue un'azione, ad es. rimuovere l'elemento dall'elenco.Lift: crea un collegamento ipertestuale AJAX per ogni articolo con trasformazione CSS

Il mio modello è simile al seguente:

<lift:surround with="default" at="content"> 
<div class="locations lift:Main.locations"> 
    <ul> 
     <li class="one"> 
      <span class="name">Neverland</span> 
      (<a href="#" class="delete">delete this</a>) 
     </li> 
    </ul> 
</div> 
</lift:surround> 

sto usando il seguente CSS trasformazione per compilarlo:

def locations = { 
    ".one *" #> somecollection map { item => 
     ".name" #> item.name & 
     ".delete" #> ???? 
    } 
} 

Ora, invece di "????", I' d amano mettere in qualcosa lungo le linee di SHtml.a(()=>delete(item), _), ma _ qui è di tipo CssSel e l'argomento 's a dovrebbe essere NodeSeq

Potrei ovviamente inserire semplicemente xml.Text("delete this"), ma voglio riutilizzare il testo che si trova all'interno del modello.

Oppure esiste un modo diverso per generare collegamenti ipertestuali AJAX?

+3

È necessario aggiungere questo come risposta corretta e quindi accettarlo. In questo modo la domanda sembra risolta per tutti. – Debilski

+0

non potevo farlo perché il mio rappresentante è troppo basso, ho dovuto aspettare fino al mattino – matejcik

risposta

2

Ho scoperto come farlo. In sostanza, invece di generare il tag a, devo usare il tag dal modello e mettere il codice AJAX in esso attraverso il CSS trasformata:

def locations = { 
    ".one *" # somecollection map { item => 
     ".name" #> item.name & 
     ".delete [onclick]" #> ajaxInvoke (() => delete(item)) 
    } 
} 

ho il sospetto che in questo modo sarebbe anche possibile creare collegamenti che funziona sia con che senza JavaScript