4

我在解析下划线模板时出错,我不断收到一条错误消息:

Uncaught SyntaxError: Unexpected token else

下面是模板:使用 Jade

script#viewLinksTemplate(type="text/template")
    table.table.table-condensed.table-striped
        caption Available links
        thead
            tr
                td link id
                td Name
                td View
                td Edit
                td Remove
        tbody
            {[ _.each(routes, function(route) { ]}

            tr
                td {{ route._id }}
                {[ if (typeof route.name !== 'undefined') { ]}
                td {{ route.name }}
                {[ } ]}
                {[ else { ]}
                td {{ route.stations.start.name }} - {{ route.stations.end.name }}
                {[ }; ]}
                td
                    a.btn.btn-primary(href="/route") View Route
                td
                    a.btn.btn-warning Edit Route
                td
                    a.btn.btn-danger Delete Route
            {[ }); ]}

问题似乎出在 if/else 语句中。当我完全删除它时,模板上留下的部分会被渲染。

那么,我是否在语法上遗漏了一些东西?我所有的其他模板都有 javascript,并且可以正确呈现,除了这个带有 if/else 的模板。

谢谢

4

1 回答 1

9

这是因为if语句的结尾和else位于两个不同的评估标签中。通过替换将它们合并为一个:

{[ } ]}
{[ else { ]}

和:

{[ } else { ]}
于 2012-12-19T17:20:37.333 回答