使用 Jinja 的 "{% break %}" 破坏了我的 Javascript 代码。我该如何解决这个问题?

木部

不是双关语...

我对 Javascript 和 Flask 还很陌生……这里的代码是:

// searches for a name in the list of persons
function searchFName(){
    var userInput = document.getElementById("search").value;
    var fname = "";

    {% for i in range(persons|length) %}
        fname = {{ persons[i].fname|tojson }};

        if(userInput == fname)
        {
            alert(userInput + "found!");
        }
    {% endfor %}
}

工作得很好。它遍历人员列表,并检查他们的名字是否与用户提供的名字匹配......基本上是一个搜索功能。

但是,如果此人已被找到,我不想让 Jinja 遍历列表。

所以我试着{% break %}在这里添加

    if(userInput == fname)
    {
        alert(userInput + "found!");
        {% break %}
    }

并且该功能停止工作,它在控制台上给我一个错误:

Uncaught SyntaxError: Unexpected end of input

我知道这个问题可能既愚蠢又简单,但我已经搜索了很多,但还没有找到任何有同样问题的人。

有关如何解决此问题或解决方法的任何信息?

谢谢!

duskwuff -不活跃-

但是,如果此人已被找到,我不想让 Jinja 遍历列表。

模板无法确定这一点。模板在查看页面时呈现,而不是在调用函数时呈现——{% break %}将始终跳出循环而不生成函数的其余部分。语法错误的出现是因为{% break %}导致if语句的右大括号被省略。

最好避免使用模板生成代码。这里更好的方法是让整个数组对 Javascript 可用,然后使用 Javascript 方法搜索数组:

function searchFName(){
    var userInput = document.getElementById("search").value;
    var fnames = {{ persons_fnames | tojson }};
    if (fnames.indexOf(userInput) !== -1) {
        alert(userInput + " found!");
   }
}

(请注意,我在persons_fnames这里用作变量或表达式的占位符,其中包含persons[i].fname每个人的值。这个列表可能应该在模板之外生成,以避免在模板文件中放置太多逻辑。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我该如何解决这个 javascript 数学问题?

我使用cairo码头PPA破坏了团结,我该如何解决?

破坏了Windows子系统对于使用dist升级的Linux systemd,我该如何解决?

我使用Parcelable实施破坏了数据

我是否使用sqlite破坏了磁盘?

使用 JavaScript 创建 <script src=...> 元素破坏了我尝试使用的 API

为什么我的JavaScript代码破坏了我的样式?

我该如何解决这个问题?使用自内连接和一些条件?

Angular 只使用 prod 环境,我该如何解决这个问题

我该如何解决这个 javascript 矩阵?

我该如何解决这个 JavaScript 挑战?

我在 react Hooks 中使用过滤器时遇到问题,我该如何解决这个问题?

我该如何解决这个问题?

我该如何解决这个问题?

我该如何解决这个问题?

Chrome 使用 102.0.5005.61 版本破坏了我的 CSS/HTML

试图使用Crypto混淆我的项目破坏了它

新的Google日历使用HTML破坏了我的脚本?

我是否使用apt-get autoremove破坏了系统?

如何解决这个问题,我使用的是 Symfony 3.1

关闭按钮上的javascript 问题| 我该如何解决?

我该如何解决这个问题:警告:Java 逻辑字体“Serif”无法使用字体“Times”和“Times”

PHP破坏了我的代码

我该如何解决这个问题?让我烦了很久

我已经破坏了Ubuntu!

缩短一段代码会产生错误;我该如何解决这个问题?

C# 颜色代码无法正常工作我该如何解决这个问题?

我该如何解决这个奇怪的SSD问题?

我该如何解决这个 <a href> 问题?