【问题标题】:jQuery - Store conditions in a string and execute them laterjQuery - 将条件存储在字符串中并稍后执行
【发布时间】:2014-09-24 14:33:25
【问题描述】:

我正在创建自己的模板引擎,用于呈现 HTML。

下面,您有一个模板,它将使用我的模板引擎呈现:

{{TMPL:Import=../../../../Data/Templates/Ribbon/tabs.tmpl; Name=Tabs}}
<div id="{{Id}}" class="ribbon">

    <!-- All the different tabs are being rendered here. -->
    {{Render:Tabs; Value="Tabs"}}
</div>

现在,我正在考虑一种技术,如果条件匹配,我如何使某些部分呈现。

我很难改变我的模板如下:

{{TMPL:Import=../../../../Data/Templates/Ribbon/tabs.tmpl; Name=Tabs}}
{{If: "{{Id}}" != "Undefined"}}
    <div id="{{Id}}" class="ribbon">

        <!-- All the different tabs are being rendered here. -->
        {{Render:Tabs; Value="Tabs"}}
    </div>
{{EndIf}}

在人类语言中,我的模板引擎传递的参数“Id”不是“未定义的,我将呈现 div 元素。

但现在我想知道如何执行这个条件。

通过使用正则表达式和替换,最终条件将如下所示:

"Undefined" != "Undefined"

但这是存储一个简单的文本值。

在 jQuery / Javascript 中有没有办法,我可以如何执行存储在字符串中的条件?

亲切的问候,

【问题讨论】:

  • 你在“我正在创建自己的模板引擎”中迷失了我:) 除非是出于教学目的。

标签: javascript jquery regex


【解决方案1】:

eval('"未定义" != "未定义"')

【讨论】:

  • 谢谢,我只需要在他们的文件中传递我的 FULL if 语句,我刚刚测试过了。感谢您的帮助。
  • 谨慎使用 eval,@Complexity。如果用户输入进入您的表达式,这可能会引入跨站点脚本问题。不客气,但无需感谢我的回答,但如果它有效,接受它会很好;-)
  • 所以,我接受了。再次感谢您的回答。用户输入永远不会进入 eval 函数。它是一个模板框架,模板存储在网站目录中,只能由网站管理员修改。
猜你喜欢
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多