刚开始报错是这样的:
Unexpected token call
是什么我没看懂,但我发现 span.label.lable-success
后面的 #[i+1]
写错了,应该是 #{i+1}
改成完这个错误后又是一个错误提示:
What? Unexpected token (109:0) 返回错误码500是什么鬼
我先将自己这段源码的 - if ... - else
检查下
// list.jade
...
each item,i in items
- if (item.type)
h5
button.btn.btn-success.btn-xs [#{item.type}]
span.label.label-success #{i+1}
a(href='#{item.link}' target="_blank") #{item.title}
- else
h5
button.btn.btn-info.btn-xs [未知]
span.label.label-info #{i+1}
a(href='#{item.link}' target="_blank") #{item.title}
...
大家都知道,Jade 目前支持三种类型的可执行代码。第一种是前缀 -
, 这是不会被输出的:
- var foo = 'bar';
这可以用在条件语句或者循环中:
- for (var key in obj)
p= obj[key]
由于 Jade 的缓存技术,下面的代码也是可以的:
- if (foo)
ul
li yay
li foo
li worked
- else
p oh no! didnt work
现在,我将我条件语句的前缀 -
去掉看看会是什么结果
这里就很明显了!说 else
找不到匹配的 if
,然后我再仔细看下代码,呃…没做好缩进
OK~问题解决(完全就是一个缩进问题的闹剧..尴尬),显示正常,最终代码如下:
// list.jade
...
each item,i in items
if (item.type)
h5
button.btn.btn-success.btn-xs [#{item.type}]
span.label.label-success #{i+1}
a(href='#{item.link}' target="_blank") #{item.title}
else
h5
button.btn.btn-info.btn-xs [未知]
span.label.label-info #{i+1}
a(href='#{item.link}' target="_blank") #{item.title}
...