[英]Vapor/Leaf Custom Tag not returning correct value
我已经注册了一个自定义标记,如果索引是奇数则返回true,如果是,则返回false:
class OddEvenTag: BasicTag {
let name = "OddEven"
func run(arguments: ArgumentList) throws -> Node? {
guard
arguments.count == 1,
let index = arguments[0]?.int
else { return Node(nil) }
print(index, index & 1)
return Node((index & 1) == 1)
}
}
print语句产生令人满意的良好输出:
0 0
1 1
2 0
3 1
...
但是,当我在叶子文件中的#loop中使用自定义标记时,例如
#OddEven(offset){hello}##else(){bye}
它总是实例化你好。 我已经尝试在返回语句中硬编码false,但它不会改变结果。 我之前使用过(更复杂的)自定义标签,所以我知道它们可以正常工作。
如果您想知道,我真的想使用标签来交替网格的行背景颜色!
BasicTag
只能像这样使用:
#TagName(variable)
并返回一个值。
如果要有条件地渲染以下块,如下所示:
#TagName(variable) { show if true }
然后你需要扩展Tag
,并将你的show / hide代码放在shouldRender(tagTemplate:arguments:value:)
函数中。
作为起点,查看If
标记 ,但不是测试真值,而是测试偶数值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.