jsRender向上迭代的问题

redlz2500 2014-04-10 11:51:14
jsRender
https://github.com/BorisMoore/jsrender
下载下来后,例子11:Accessing parent data死活没看懂,求指点
先放源文件:

<script id="movieTemplate1" type="text/x-jsrender">
//模板
{{for movies}}
<tr>
<td>'{{>title}}': showing at the '{{>#parent.parent.data.theater}}'</td>
<td>
{{if languages}}
{{for languages}}
{{>#data}}{{>#parent.parent.parent.parent.parent.data.specialMessage(#data, #parent.parent.data.title)}}<br/>
{{/for}}
{{/if}}
</td>
</tr>
{{/for}}
</script>
//数据
var model = {
specialMessage: function(language, title) {
if (language === "French" && title === "City Hunter") { return ": (special offer)"; }
},
theater: "Rialto",

movies: [
{
title: "Meet Joe Black",
languages: [
"English",
"French"
]
},
{
title: "City Hunter",
languages: [
"Mandarin",
"French",
"Chinese"
]
}
]
};




主要是在:movieTemplate1这里,其中的

{{for languages}}
{{>#data}}{{>#parent.parent.parent.parent.parent.data.specialMessage(#data, #parent.parent.data.title)}}<br/>
{{/for}}

这里的向上迭代我算了半天,应该是#parent.parent.parent.parent.data才对吧?
本身是language的成员,即“English”
#parent就是language,
#parent.parent就是
{
title: "Meet Joe Black",
languages: [
"English",
"French"
]
}
#parent.parent.parent.就是movie
#parent.parent.parent.parent.就是model,使用data调用model的数据,这才对吧?

**********************************

比如title这段,<td>'{{>title}}': showing at the '{{>#parent.parent.data.theater}}'</td>,在movie循环下
#parent就是movie本身
#parent.parent就是model,
#parent.parent.parent.data取得model的数据,不知道关于language这段是我理解错误还是怎么的,求指点
...全文
50 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧