Meteor 0.8.0:构建应用程序时:意外的关闭模板标签
Posted
技术标签:
【中文标题】Meteor 0.8.0:构建应用程序时:意外的关闭模板标签【英文标题】:Meteor 0.8.0: While building the application: Unexpected closing template tag 【发布时间】:2014-05-08 03:33:31 【问题描述】:我的模板中有这个部分,意外的结束模板标签是 /if。
#if selected
<div class="Answer--selected">
else
<div class="Answer">
/if
<i class="fa"></i> title
</div>
这段代码有什么问题?
【问题讨论】:
【参考方案1】:我的问题在 Meteor Devshop 得到了解答。 Meteor 0.8.0 中的一项重大更改是名为 Blaze 的新模板系统,它以一种全新的方式呈现您的模板。 Blaze 不会在模板每次呈现自身时重新生成整个 html 片段,而是仅查找需要更新的 DOM 节点并执行尽可能少的更改。这意味着您不再允许在块助手中包含未关闭的 HTML 标记。
所以修正后的代码如下:
#if selected
<div class="Answer--selected">
<i class="fa"></i> title
</div>
else
<div class="Answer">
<i class="fa"></i> title
</div>
/if
HTH
【讨论】:
【参考方案2】:Meteor 0.8.0 有一个完全重写的模板引擎。名为烈焰。
查看文档http://docs.meteor.com,特别是有关使用 blaze 的 wiki 页面。 https://github.com/meteor/meteor/wiki/Using-Blaze
【讨论】:
【参考方案3】:如果您只想根据条件更改类名,我相信这也可以。
<div class="#if selectedAnswer--selectedelseAnswer/if">
<i class="fa"></i> title
</div>
只要你没有用你的助手破坏标签开始/结束,你应该没问题。
史蒂夫
【讨论】:
嘿,这也有效!我认为该规则只要评估每个块表达式的结果是文本(即使该文本被用作属性的值)或格式正确的 HTML,它就可以与 Blaze 一起使用。 同意。我相信你不能做的另一件事是:#if condclass="x"/if
- 你的规则仍然适合。以上是关于Meteor 0.8.0:构建应用程序时:意外的关闭模板标签的主要内容,如果未能解决你的问题,请参考以下文章
Meteor:WebSocket 握手期间出错:意外响应代码:400
如何在 Meteor 中使用 #each 块实现最后一项的条件?