So, I'm working on a simple image gallery, and I can make a link from an image in the gallery to a page for that image with this:
<lift:Image.showAll>
<showAll:imgLink />
</lift:Image.showAll>
(additional content omitted for clarity). This is simple enough to
bind:
"imgLink" ->
link("/viewImage", () => selected(i.id), <img src={i.url} />)
but this a.) puts a tiny bit of content in the snippet (what if
different pages want different class attributes on the img tag?), and
b.) isn't customizable -- if I want another link from the image's name,
I need another bindpoint, etc.
So, with some playing around, I can get a little more general with
<lift:Image.showAll>
<showAll:link>
<p>some random html</p>
</showAll:link>
</lift:Image.showAll>
bound via:
"link" ->
{n: NodeSeq => link("/viewImage", () => selected(i.id), n)}
or:
"link" -> link("/viewImage", () => selected(i.id),
chooseTemplate("showAll", "link", in)),
this works well enough as far as it goes (the latter is a little worse,
IIUC as it involves more rescanning of the html).
But what I would like to do is this:
<lift:Image.showAll>
<showAll:link>
<img showAll:imgUrl="" />
</showAll:link>
</lift:Image.showAll>
and neither of the previous two BindParams work, yielding:
XML Parsing Error: prefix not bound to a namespace
Location: http://www.draga.com:9080/viewImages
Line Number 135, Column 12:
<img showAll:imgUrl="" />
since the content is not re-substituted.
So far, the only way I've found to do this is with a second call to
bind, repeating the list of BindParams:
"link" -> // XXX XXX XXX ugly respecifaction of bind
{n: NodeSeq => link("/viewImage", () => selected(i.id),
bind("showAll", n,
"name" -> i.name.is,
AttrBindParam("imgUrl", i.url, "src")
))},
Is there a cleaner way to do this -- to specify that I want bind points
of this snippet to be evaluated even if they appear within the XML of
other bind points? I don't want or need true recursive evaluation --
just to bind all of the bind points which were visible when the xhtml
was first parsed.
Thoughts? This is with 1.1-M8, though I don't think it makes a
difference...
--
Jim Wise
[email protected]
pgp94whYwN2xg.pgp
Description: PGP signature
