Slick, thats perfect, thanks.

On Dec 23, 4:16 pm, Ross Mellgren <[email protected]> wrote:
> bind("alsoKnownAs", in, "list" -> { (ns: NodeSeq) => bind("list", ns,  
> "label" -> ... ) })
>
> -Ross
>
> On Dec 23, 2009, at 3:59 PM, Alex Black wrote:
>
> > I've got this xhtml in my template:
>
> > <lift:Compare.loserAlsoKnownAs>
> >  Also known as:
> >  <ul>
> >    <alsoKnownAs:list>
> >      <li><list:label /></li>
> >    </alsoKnownAs:list>
> >  </ul>
> > </lift:Compare.loserAlsoKnownAs>
>
> > with this snippet code:
>
> > def alsoKnownAs( xhtml: NodeSeq, product: Product): NodeSeq =  {
> >    def list( xhtml: NodeSeq, product: Product): NodeSeq = {
> >      product
> >        .alternateLabels
> >        .flatMap( l =>
> >          bind("list", xhtml,
> >                "label" -> l
> >          )
> >        )
> >    }
>
> >    product.alternateLabels match {
> >      // Remove the entire block (including title if there are no
> > alternate labels)
> >      case Nil => Nil
> >      case _ => bind("alsoKnownAs", xhtml, "list" -> list
> > (chooseTemplate("alsoKnownAs","list", xhtml), product))
> >    }
> >  }
>
> > This works well:
> > - The entire XHTML is removed if there are no alternateLabels
> > - If there are alternateLabels, the "Also known as:" text is not
> > repeated, just the LI elements in the list
>
> > However, in my bind call:
>
> >      case _ => bind("alsoKnownAs", xhtml, "list" -> list
> > (chooseTemplate("alsoKnownAs","list", xhtml), product))
>
> > I specified alsoKnownAs:list twice, it feels a bit redundant... The
> > intent of the code is: find the thing called alsoKnownAs:list, grab
> > the xhtml below it, pass it into the list function, and replace its
> > value with the output of list.
>
> > Is there some trick I'm missing here to avoid specifying things twice?
>
> > Just curious - the solution is pretty elegant as is.
>
> > - Alex
>
> > --
>
> > You received this message because you are subscribed to the Google  
> > Groups "Lift" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to 
> > [email protected]
> > .
> > For more options, visit this group 
> > athttp://groups.google.com/group/liftweb?hl=en
> > .

--

You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en.


Reply via email to