在MediaWiki中,ifeq解析器函数始终分支为false
我尝试了以下方法:在MediaWiki中,ifeq解析器函数始终分支为false,mediawiki,mediawiki-templates,Mediawiki,Mediawiki Templates,我尝试了以下方法: {{#ifeq: {{{gene.codingnature}}} | 1 | Yes | No }} {{#ifeq: {{{gene.codingnature}}} | "1" | Yes | No }} {{#ifeq: {{{gene.codingnature}}} | 0 | Yes | No }} {{#ifeq: {{{gene.codingnature}}} | "0" | Yes | No }} {{{gene.codingnature}}}是0。输出总是否
{{#ifeq: {{{gene.codingnature}}} | 1 | Yes | No }}
{{#ifeq: {{{gene.codingnature}}} | "1" | Yes | No }}
{{#ifeq: {{{gene.codingnature}}} | 0 | Yes | No }}
{{#ifeq: {{{gene.codingnature}}} | "0" | Yes | No }}
{{{gene.codingnature}}}是0。输出总是否
我也试过:
{{#ifexpr: {{{gene.codingnature}}} = 0 | Yes | No }}
{{#ifexpr: {{{gene.codingnature}}} = 1 | Yes | No }}
Expression error: Unrecognized punctuation character "{". Expression error: Unrecognized punctuation character "{".
但是,正如你所看到的,它陷入了一个错误。你读过吗
如果您只想传递一个布尔值并避免担心未定义的参数、缺少的参数等,只需使用
{{#if: {{{gene.codingnature|}}} | Yes | No }}
无论您作为参数传递什么,都会使它成为真的:通常人们输入1、yes、true等,他们不必担心哪一个是正确的
如果确实要传递文本字符串1/0,例如,因为模板已被多次这样调用,则需要为参数指定默认值,通常为false,否则删除该参数将等于true
{{#ifeq: {{{gene.codingnature|0}}} | 1 | Yes | No }}
查看它的渲染方式:您如何知道它是0?你能告诉我们模板包含吗?仅从这些信息不可能知道,但是表达式错误:无法识别的标点符号{。表达式错误:无法识别的标点符号{。告诉我们,{{{gene.codingnature}}}}甚至可能没有定义。Print codingnature>{{{gene.codingnature}我知道它是0,因为写{{{gene.codingnature}}}}打印0…你确定显示否的不仅仅是模板预览吗?我已经输入了模板代码,并使用gene.codingnature=0对其进行了计算,第三种情况下给出了是。在我的情况下,第三种情况下给出了否。