1

我有一个部分......如果我通过link.action添加一个链接......链接工作得很好:

MyPartial.html:

<f:link.action action="show" pageUid="43" pluginName="abc" controller="Abc" extensionName="abc" arguments="{record:1}">ActionLink</f:link.action>

但是,如果我想通过 Javascript 将 link.page viewhelper 添加到部分 ...

我的部分.html

  <table id="lei_all" width="100%">
    <thead>
      <tr>
        <th>Column01</th>
        <th>Column02</th>
      </tr>
    </thead>
  </table>      

JS:

var table_all = $('#table_all').DataTable( {
        dom: "Blrtip",  
        ajax: {
              url: "/source.php",
              type: "POST"
        },
        serverSide: true,
        processing: true,
        columns: [
            { data: "column_01", 
                "render": function ( data, type, row ) {
                    return '<f:link.action action="show" pageUid="43" pluginName="abc" controller="Abc" extensionName="abc" arguments="{record:1}">'+data+'</f:link.action>';
                } },

            { data: "column_02" }                          
        ],
        ...
    } );      

我得到这样的原始视图助手:

<tbody>
    <tr id=row_1 class="odd" role="row">
        <td tabindex="0"><f:link.action action="show" pageUid="43" pluginName="abc" controller="Abc" extensionName="abc" arguments="{record:1}">ActionLink</f:link.action></td>     
        ...
    </tr>
</tbody>    

在上述情况下如何添加视图助手?

4

1 回答 1

1

ViewHelpers 根本不是那样工作的。您正在尝试的相当于在 JavaScript 中调用 PHP 函数来构建字符串。这样做的预期结果是您将看到 Fluid 标记输出,与您描述的完全一样。

唯一的方法是用 PHP 构建链接并(以某种方式)将它们传输到 JavaScript。这样做的有效方法包括:

  • 使用data-something属性将 URL 从 HTML 传送到 JS
  • 使用 XHR 请求为特定目的创建链接
  • 生成一个由表中的任何标识符索引的所有链接的列表,例如 JSON 或其他文件typo3temp,然后读取此列表并在 JS 中呈现您的表时使用适当的链接。

根据您的需要,选择一个并实现它,这样您的 JavaScript 中就没有 Fluid 代码。

于 2017-11-21T14:55:30.423 回答