gpt4 book ai didi

ruby-on-rails - 如何使用 Underscore.js 和 HAML 插入 if/else 语句?

转载 作者:行者123 更新时间:2023-12-04 17:24:21 24 4
gpt4 key购买 nike

我正在尝试使用 Underscore.js 和 HAML 进行 if/else 插值,但无济于事。我已经将 Underscore.js 中的 interpolate 设置更改为以下内容:

_.templateSettings = {
interpolate : /\{\{([\s\S]+?)\}\}/g
};

当我试图在 {{ value }} 这样的符号中插入一个值时,这很有效。但是,我无法使 if/else 语句起作用。我有以下几点:
{{ if (true) { }}
{{ val }}
{{ } }}

我收到一个 Javascript 异常“Uncaught SyntaxError: Unexpected token if”。非常感谢帮助。

最佳答案

下划线模板使用三组不同的分隔符:

  • evaluate :这是一些 JavaScript,<% ... %>默认情况下。
  • interpolate :这是为了转储变量的内容,<%= ... %>默认情况下。
  • escape : 作为 interpolate但也转义 HTML,<%- ... %>默认情况下。

  • 这些大多匹配 ERB 语法。您正在尝试对不是表达式的 JavaScript 使用插值语法:
    {{ if(true) { }}

    但这不能用作 if不是 JavaScript 中的表达式。

    您可能想要覆盖所有三种模式:
    _.templateSettings = {
    evaluate : /\{\{([\s\S]+?)\}\}/g,
    interpolate : /\{\{=([\s\S]+?)\}\}/g,
    escape : /\{\{-([\s\S]+?)\}\}/g
    };

    然后说这样的话:
    {{ if (true) { }}
    {{= val }}
    {{ } }}

    如果您可以将模板限制为简单的替换,那么您可以使用 interpolate{{expr}}在您的模板中。

    关于ruby-on-rails - 如何使用 Underscore.js 和 HAML 插入 if/else 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12905241/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com