2016-03-22 3 views
-1

В оболочке typo3 я генерирую несколько переменных javascript в Index.html.Typo3 flow - рендеринг частично в javascript

Теперь я хочу поместить некоторый html из частичного в переменную. Это вызов:

channels[{i.index}].card = ' <f:render partial="Channel/Item" arguments="{channel:channel}"/> '; 

Содержание парциального ничего особенного:

<div class="col-md-1"> 
    test 
</div> 

Но это генерирует ошибку, потому что яваскрипт typo3-поток производит переносы после каждой строки. Chrome сообщает об «SyntaxError: Неожиданный токен НЕЗАКОННОГО»

channels[0].card = ' 
<div class="col-md-1"> 
test 
</div> 


'; 

Неожиданный маркер является первым LINEBREAK после первого ", я думаю. Если я напишу частичное в ОДНОЙ строке, переменная javascript верна. Но я не хочу писать весь HTML в частичном в одной строке.

Как я могу описать javascript, что есть разрыв строки? Или сказать поток, что он должен отображать частичное в одной строке?

ответ

0

Это нормально для многострочных значений в JS, просто используя некоторую среду IDE, которая проверяет файл JS create test.js, и он покажет вам ошибку.

У вас есть два простых решения:

Удалить все разрывы строк в вашей частичной, так что ваш код будет выглядеть так (нет пустых строк в конце!):

<div class="col-md-1">test</div> 

или конец каждой строки с задней -slash:

<div class="col-md-1"> \ 
    test \ 
</div> \ 
\ 
\ 

Расширенное решения писать на заказ ViewHelper, который будет обрезать код и строки замены порывает с задней косой чертой или удалить их все (разрывы строк не requi красный для правильного форматирования) эта опция имеет смысл, если вы знаете, как создавать пользовательские ViewHelpers и/или ваши частичные, довольно большие, и вам нужно/нужно поддерживать перерывы для упрощения работы с файлом.