在Python中,迭代为我提供了一个命名变量:
for cage in cages:
for animal in cage.animals:
print("The current cage is",cage)
print("the current animal is",animal)
在Ractive模板中,我似乎无法执行此操作。
{{#cages}}
{{#animals}}
The current animal is {{.}} or {{this}},
but I don't know how to refer to the current cage,
i.e. the outer loop variable
I would like to be able to say {{cage}} has an {{animal}}
{{/animals}}
{{/cages}}
有没有我不知道的语法?
答案 0 :(得分:5)
我想知道是否应该添加{{#each cage in cages}}
或{{#each cages as cage}}
语法来处理这类案例。取而代之的是,mknecht的答案是完全有效的,而且我经常使用自己的东西;另一种方法是创建一个索引引用,如下所示:
{{#each cages :c}}
{{#each animals}}
The current animal is {{this}}, the current cage
is {{cages[c]}}
{{/each}}
{{/each}}
与此方法的不同之处在于双向绑定仍然有效(尽管在这种情况下听起来不像是一个问题。)
答案 1 :(得分:4)
没有明确的语法,afaik,但您可能(误)使用aliases:例如,您创建了一个新的上下文,将var result = new[] {4, 5}
.Select(d => new
{
Divider = d,
Values = numbers.Where(n => n % d == 0).ToList()
});
重命名为.
。它看起来像这样:
cage
完整版本为on JSFiddle
Mis 使用,因为在Ractive中,您通常使用当前上下文对象的属性而不命名上下文对象本身。这在嵌套的情况下也可以正常工作。因此,没有这方面的语法。
别名确实有意义:名字阴影。如果您需要访问与内部循环中的动物属性同名的cage-property,则别名将起作用。两者都是demonstrated in another fiddle