2013-02-21 37 views
0

我想在我的web框架中使用KnockoutJS,它使用普通的Smarty。Smarty评论剥离和KnockoutJS

KnockoutJS语法的某些部分以<!-- ko foreach: array -->的形式使用注释。

Smarty删除所有HTML注释(IE条件除外),包括这些。

我可以删除Smarty中负责的preg_replace行,但我宁愿有解决方案,我不必更改第三方代码。

有什么办法可以跳过Smarty中剥离的评论吗?

回答

0

实际上,Smarty会在模板的最终输出中显示所有HTML注释,如<!-- comment -->。只有Smarty特定评论{* this is a comment *}隐藏在最终输出中。您的框架可能会隐藏后端的HTML注释,可能是为了进行HTML压缩。

参考Smarty Comment Syntax

+0

您可能使用的是旧版本。当前版本(3.1.13和几个版本)有一个名为'outputfilter.trimwhitespace.php'的插件,它包含一行'$ source = preg_replace('# #ms','',$ source);' ,它做评论剥离。据我所知,过滤器不能被禁用或删除,而不改变代码或删除文件。 – Martijn 2013-04-20 06:14:32

+0

我很抱歉。我对这个新插件一无所知。 – 2013-04-20 19:04:51

+0

Martijn不正确,outputfilter.trimwhitespace.php未启用OOTB。它必须在PHP代码中显式启用。你可能无法启用它。 – mohrt 2015-08-27 16:33:36