有没有一种方法来检索存储在一个子对象的模板(AKA存储阵列中的关父对象的子对象),用于循环做时和应用该子对象上的模板?JsRender深嵌套数据模板
我知道这个问题有点混乱。以下是一些使事情更清晰的代码。
下面的构造函数代表我的模型:
function group (children) {
this.children = children;
}
group.prototype.jsTmpl = $1_10_2.templates('<div class="group">{{for children tmpl=jsTmpl /}}</div>');
group.prototype.render = function(selector){
$1_10_2(selector).html(this.jsTmpl.render(this));
}
function item (title) {
this.title = title;
}
item.prototype.jsTmpl = $1_10_2.templates('<div class="item">{{:title}}</div>');
我存储在每个对象的原型独特jsRender模板,这样我就可以递归数据打交道时方便地访问它。在这里,我newing了四个“项目”对象儿童“群组”对象:
var vehicles = new group([
new item('car'),
new item('truck'),
new item('van'),
new item('bus'),
]);
现在,当我打电话vehicles.render();我的车组实例我希望以下内容:
Output: <div class="group">
<div class="item">car</div>
<div class="item">truck</div>
<div class="item">van</div>
<div class="item">bus</div>
</div>
相反,我得到如下:
Output: <div class="group">
<div class="group"></div>
<div class="group"></div>
<div class="group"></div>
<div class="group"></div>
</div>
我得出这样的结论:TMPL = jsTmpl在组对象始终引用组对象的jsTemp属性,而不是for循环中的当前子节点。
我曾尝试使用下面的组jsRender模板:
'<div class="group">{{for children}}{{include tmpl=jsTmpl}}{{/for}}</div>'
但jsRender不喜欢有一个包括的内部for循环。
是否有任何方法获取孩子的模板并将其应用于父母的for循环?
@Matt登普西:你有看到这个吗?你能确认它现在适合你吗? – BorisMoore