有没有办法在 Template Toolkit 中比较两个变量?

发布于 2024-08-21 10:05:56 字数 338 浏览 4 评论 0 原文

[% IF OrgType.id == Organization.org_type_id %]selected="selected"[% END %] 

即使它们的计算结果相同,也不起作用。

[% IF OrgType.id == 3 %]selected="selected"[% END %] 

(即出于测试目的硬编码数字)确实有效。

[% OrgType.id %] and [% Organization.org_type_id %] 

两者都在页面上打印“3”。

[% IF OrgType.id == Organization.org_type_id %]selected="selected"[% END %] 

Does not work even when they both evaluate to the same number.

[% IF OrgType.id == 3 %]selected="selected"[% END %] 

(i.e. hard-coding in a number for testing purposes) does work.

[% OrgType.id %] and [% Organization.org_type_id %] 

both print "3" on the page.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

旧时光的容颜 2024-08-28 10:05:56

以下内容对我有用:

 my $tt = Template->new; 
 $tt->process( \"[% IF foo == bar %]blah[% END %]", { foo => 42, bar => 42 } );

输出“blah”。所以我怀疑你的两个变量不包含你认为的内容。 Template Toolkit 使用 == 的字符串相等性,因此如果您这样做:

 my $tt = Template->new; 
 $tt->process( \"[% IF foo == bar %]blah[% END %]", { foo => 42, bar => "42 " } );

它将中断。您可能需要对数据进行一些处理,以使它们能够正确处理字符串相等性。

The following works for me:

 my $tt = Template->new; 
 $tt->process( \"[% IF foo == bar %]blah[% END %]", { foo => 42, bar => 42 } );

That outputs 'blah'. So I suspect that your two variables don't contain what you think they do. Template Toolkit uses string equality for ==, so if you do:

 my $tt = Template->new; 
 $tt->process( \"[% IF foo == bar %]blah[% END %]", { foo => 42, bar => "42 " } );

It will break. You may need to massage the data a bit to get them to work right with string equality.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文