I have been playing with the ToDo example application and having fun in manipulating XML.
With the <todo:list/> node I thought it would be good if the XHTML designer could pass in some guidance to the doList(...) method used in bind(..). ie. <todo:list singular="true">...</todo:list> Looking over the bind code I noticed that the attributes are not accessible without ending up changing the calcValue method's signature. I did initially try to knock up a case class FuncWithAttrBindParam(name: String, value: (NodeSeq, MetaData) => NodeSeq) extends Tuple2(name, value) with BindParam and a corresponding case Some(ns : FuncWithAttrBindParam) => in in_bind(...), but it all looks like a huge kludge. It strikes me as a little deficient to be able to utilise attributes within the context of a snippet and yet not within a bind. I know bind is quite embedded in lift now, but I think that this difference might prove a little frustrating. I know one solution is to just create a bind("todo", html, "exclude" -> ajaxCheckbox(QueryNotDone, v => {QueryNotDone(v); reDraw}), "list" -> doList(reDraw, false) _, "list_singular" -> doList(reDraw, true) _) But I think from the XHtml designer's perspective that is counter intuitive... Thoughts? ------ It should be noted that this is different to the case class FuncAttrBindParam(name: String, value: NodeSeq => NodeSeq, newAttr: String) extends BindParam with BindWithAttr. Which interesting enough has no corresponding SuperArrowAssoc -> method match. Maybe def ->(t: Tuple2[String, NodeSeq]) = AttrBindParam(name, t._2, t._1) def ->(t: Tuple2[String, NodeSeq => NodeSeq]) = FuncAttrBindParam(name, t._2, t._1) And maybe even... def ->[T](t: Tuple2[String, T]) = FuncAttrBindParam(name, (name -> t._2).calcValue _, t._1) or def ->[T](t: Tuple2[String, T]) = FuncAttrBindParam(name, (t._1 -> t._2).calcValue _, t._1) I'm not sure which is better on the last two... Just a thought. Marc --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~---