具有 Backbone.js 变量的细枝路径

kx7yvsdv  于 2022-11-10  发布在  其他
关注(0)|答案(3)|浏览(140)

我想知道怎么可能在twig中插入来自 Backbone.js /下划线函数的代码?
我的问题是:

{{path('getArticle', {"id": <%= id %>})}}

我需要更改此变量:<%= id %>
这不起作用,因为Twig解析之前的 Backbone.js 代码。所以我不知道如何给予这种类型的变量?
先谢谢你了

watbbzwu

watbbzwu1#

我假设您在服务器端使用Symfony沿着TWIG,在这种情况下,您只需要将$id变量发送到TWIG模板

public function callMyTwigAction($deskId)
{
    $id=whatIwant();
    return array('id' => $id);
}

然后调用TWIG文件:

{{path('getArticle', {"id": id})}}

客户端模板和服务器模板不匹配。像Underscore Template(或者使用Mustache)这样的客户端模板正在将原始Web服务数据(JSON或XML)转换为HTML,并且(可能)是用Javascript编写的。
服务器端模板通常将业务对象(Java/PHP类)转换为HTML,并使用TWIG或Velocity等引擎。

yqyhoc1h

yqyhoc1h2#

对于更复杂的体系结构,我建议做三件事:

  • 简化您的体系结构:)可能有什么地方出错了。
  • 创建一个Web服务来获取给定id的路径(但这会使体系结构更加复杂)
  • 在你的javascript中创建一个包含Twig的路径数组。2如果少于200篇文章并且这个页面不经常显示的话,这个数组是可以的。

你在服务器端使用TWIG吗?你使用什么技术栈?

vsikbqxv

vsikbqxv3#

使用FOSJSRoutingBundle。它会生成一个包含所有公开的TWIG路由的Map,然后您可以在Javascript中使用它。
将Routing组件设置为全局组件,或者将其注入到下划线模板中,然后像在TWIG中那样简单地调用它,但使用JS表示法:

<a href="<%= Routing.generate('getArticle', {'id': id}) %>">Get Article <%= id %></a>

相关问题