nested templates problem

I would like to use the jQuery [Templates][1]. On first sight the {{tmpl}} tag seems to be the way to go, but I need to do an extra step when templating and I can't figure out how to do this. There is a datatype-definition connteced to the properties of a data-object. In the example below 'movie' is a text-field, 'released' a numeric field. Alle text-fields use a certain template, so do all numeric fields. Those nested templates know nothing about the context (here movies) they are used in. So the tag used there is just ${value} always. The "outer" template instead knows how a movie should look like. Its tags (movie and released) are replaced by the "inner" datatype-related templates. The extra step is to replace ${value} before the outer templating is done. All I could come up with is this: //the template used for all string-fields var templForStrings = "${value}"; //the template used for all numeric fields var templForNum = "${value}"; //data of a movie var data = {}; data.movie = "Cowboys and Aliens"; //a string field data.released = 2011; //a numeric field //the template to show a movie var templForMovies = "
{{html movie}} ({{html released}})
"; //normally a loop over the fields here var field = {value: data.movie}; data.movie = $.tmpl(templForStrings, field).fullhtml(); field.value = data.released; data.released = $.tmpl(templForNum, field).fullhtml(); //now the movie template $.tmpl(templForMovies, data).appendTo("body"); Of course this scenario is simplified. The datatype-templates are a lot more complex than that. The data can be anything. Because of ${value} meaning two different things here, I don't see how to use nested templates as provided by the plugin. But I'm quite sure there is a more elegant and faster way than my code (which even needs the [fullhtml-Plugin][2]. It would really be nice to have a template like this
${movie} (${released})
as these are creatable by end-users too, and should be as simple as possible. [1]: http://api.jquery.com/category/plugins/templates/ [2]: http://plugins.jquery.com/project/FullHTML

以上就是nested templates problem的详细内容,更多请关注web前端其它相关文章!

赞(0) 打赏
未经允许不得转载:web前端首页 » jQuery 答疑

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

前端开发相关广告投放 更专业 更精准

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏