关于freemarker 的用法?

varzNodes=[<@_listCategory><#listcategoriesas_category>{id:'C_${_category.id}',pId:'C... var zNodes =[
<@_listCategory>
<#list categories as _category>
{ id: 'C_${_category.id}', pId: 'C_${_category.parent_id}', name: '${_category.name}', isParent: true<#if api?? && api.parent_ids?index_of("," + _category.id + ",") gt 0>, open: true</#if>},
</#list>
</@_listCategory>
];

给我讲一下这几行代码的意思, 特别是 <@_listCategory> </@_listCategory> 这组标签 它是什么意思??
路过的帅哥 美女 大虾 还请不吝赐教 (真心的没分了 谢谢) 在线坐等!!
展开
 我来答
v焚忧v
推荐于2016-07-22 · TA获得超过241个赞
知道小有建树答主
回答量:286
采纳率:0%
帮助的人:130万
展开全部
只从这段代码中实际上是无法完全确定<@_listCategory> </@_listCategory> 这组标签的含义。
因为在Freemarker中,那组标签表示调用名为_listCategory的指令
而这个指令基本上可以确定是编码者自定义的指令,所以无法完全确定。
当然在后面会有我对这个指令含义的推测。现在开始解析这段代码。

我对这个代码的初步认识是:一段使用ztree插件过程中,赋值树节点字符串的js代码。
代码中的zNodes变量实际上是一个节点对象的数组,这段代码出现的此对象的属性如下:
id、pId(父节点id)、name、isParent(是否为父节点)、open(是否展开,true为展开)。

代码逐行解析:

var zNodes =[ //定义zNodes数组
<@_listCategory> //调用_listCategory
<#list categories as _category> //循环名为catagories的List,定义其中的元素为_category
//以下为treeNode对象的赋值过程
{ id: 'C_${_category.id}', //赋值id为 C_ + _category对象的id属性
pId: 'C_${_category.parent_id}', //赋值pId为'C_${_category.parent_id}'
name: '${_category.name}', //赋值name为 '${_category.name}'
isParent: true //赋值isParent为true
<#if api?? && api.parent_ids?index_of("," + _category.id + ",") gt 0>, open: true</#if>},
//判断: api对象若存在,并且api的parent_ids属性中含有"," + _category.id + ","
//则赋值 open为true (即此节点展开),注意对象赋值结束后有逗号
</#list> //循环结束
</@_listCategory> //指令调用结束,这组指令之间的代码就是其作用范围
]; //定义zNodes数组结束

由于循环结束后最后一个对象后面多了一个逗号,故_listCategory可大概判断其作用是去除结尾逗号用。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式