流体模板:传递一个javascript varible作为参数值?

时间:2018-02-05 15:39:29

标签: javascript typo3 fluid

对于af:在我的流体列表模板中链接显示动作我想将javascript变量传递给参数,基本上是uid(将该特定对象传递给showAction),但它不能按照我打算的方式工作做到这一点。这个特定问题是否有解决方法?

裸模板看起来像这样:

  <f:for each="{termins}" as="termin"> 
    <tr>
      <td><f:link.action action="show" arguments="{termin : termin}"> {termin.mitarbeiter}</f:link.action></td>
      <td><f:link.action action="show" arguments="{termin : termin}"> {termin.kunde}</f:link.action></td>
    </tr>
  </f:for>
</table>

3 个答案:

答案 0 :(得分:1)

你不能 - 而且你也不能(从来没有应该)生成JS控制器动作的链接,因为它需要生成一个安全校验和。修改您创建的URL将产生安全性错误。存在校验和以防止DDOS,因此它有充分的理由。

有两种选择:

  • 您可以提前生成所有链接
  • 您可以使用XHR创建一个链接生成服务,以便从JS生成必要的链接。

只有第一个适合您的用例。特别是因为您想要传递总是引用数据库中对象的UID值 - 这意味着您可以轻松生成指向所有可能的详细信息视图的链接列表,然后从JS中读取/传递该链接列表以选择正确的之一。

答案 1 :(得分:0)

JS是流体模板之后的工作。正确的顺序是,您的流体模板被解析为HTML,然后浏览器将HTML / JS / CSS呈现给您。因此,您不能指望在流体模板中使用JS值。

答案 2 :(得分:0)

有两种可能性:

1)而不是链接使用表单并通过POST传输。使用JavaScript动态设置表单域。这样你的变量就不包含在(cHash-)校验和中。

2)创建一个接受变量作为参数的AJAX操作。让它生成一个有效的链接。使用POST将其与您的可变数据一起调用。使用JavaScript在您的页面上显示链接。