下划线模板:if else语句出错

时间:2012-12-19 17:11:56

标签: underscore.js

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

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。

的模板

由于

1 个答案:

答案 0 :(得分:9)

这是因为if语句和else的结尾位于两个不同的评估标记中。通过替换:

将它们合并为一个
{[ } ]}
{[ else { ]}

使用:

{[ } else { ]}