jade,急救
发布于 9 年前 作者 lingke00 3521 次浏览 最后一次编辑是 8 年前 来自 问答

if type p a #{type} else extend layout block example p b #{type} 第一次 type为false,载入布局 为啥第二次载入type为true时 还是输出else部分呢 输出 b true

10 回复
if type === true

这样可以吗?

-if type
	p a #{type}
-else
  extend layout
  block example
	p 
		b #{type}

JADE,孩子别折腾了……

2L正解 所有的JS命令产生的元素子集必须是JADE的下一层级 但是编译后与JS命令同级

@hezedu 我就是这样写的,只是 Tab没显示出来。。

@lingke00 好吧,我承认没经过测试。 最简单方法是:弄两模版,放在路由层处理。如果一个包含另外一个,就include

extend layout block example if type p a #{type} else p b #{type}

@hainee 你是要楼主写原生页面?

else 的情况才 extend layout 是吧?

我写过一些模板工具,支持类似的模版继承,说说我自己理解jade是怎么做的…

  1. 找出extend,这个时候处理的是纯文本,if else什么的在这里没有作用
  2. 填坑,layout里面定义了一个blockA , 模板里面实现了一个blockA,那么好,把模板里面的blockA填到layout里的blockA里面
  3. 有了extend后的模板,编译成函数,传locals输出

试了下 2015-05-04_11-29-47.png

jade 真心受不了它的语法

回到顶部