在应用程序中,我们正在开发HTML内容,该函数使用perl字符串写入,稍后返回。有一个用例,我们需要根据条件的结果显示HTML的某个部分。 既然,HTML只是标记,我的理解是不可能的。 是否有解决这个问题的方法,使用Perl或其他方法?(除了创建2个不同的模板)根据条件显示HTML内容
谢谢!
在应用程序中,我们正在开发HTML内容,该函数使用perl字符串写入,稍后返回。有一个用例,我们需要根据条件的结果显示HTML的某个部分。 既然,HTML只是标记,我的理解是不可能的。 是否有解决这个问题的方法,使用Perl或其他方法?(除了创建2个不同的模板)根据条件显示HTML内容
谢谢!
您可以很容易地根据if
声明将不同的内容放入字符串中。
my $thing_to_insert = "";
if (condition()) {
$thing_to_insert = '<div>...</div>';
} else {
$thing_to_insert = '<p>...</p>';
}
my $html = "<div>$thing_to_insert</div>";
return $html;
尽管使用模板语言(如Template Toolkit或Text :: Xslate)通常会更好。
这伤害了我的眼睛。 :D – simbabque
我有一个大的HTML作为一个字符串,并说一个按钮必须显示的基础上的决定。 其余必须相同。 如何在HTML之间添加perl字符串。 看起来像这样:
。 。 。 ..... 。 。 – raita@raita - 我在答案中举了一个例子。 – Quentin
您需要决定在构建HTML字符串时要显示的内容。
从本质上讲,你的代码应该是这样的:
my $html = '<html><head>... [lots of HTML]';
if ($we_want_to_show_the_button) {
$html .= '<button> ... [button html] ... </button>';
}
$html .= '[lots more HTML] ... </body></html>';
我应该注意,但是,我们已经知道了二十年是通过连接你的Perl代码字符串内生成HTML是一个可怕的想法。更好的方法是将所有的HTML放入模板中 - 以及在各种条件成立时显示各种位的逻辑。
如果您正在使用的模板Tooikit,这可能是这个样子:
<html>
<head>...</head>
<body>
... lots of HTML omitted ...
[% IF we_want_to_show_the_button -%]
<button> ... </button>
[% END -%]
... lots more HTML ...
</body>
</html>
您可能希望[观看这次谈话(https://www.youtube.com/watch?v= jKOqtRMT85s)。 – simbabque