Тема Diazo с ошибкой атрибутов json: атрибут 'data-plugin-options': не удалось скомпилировать выражение

У меня есть статическая тема, которая содержит некоторые атрибуты json для настройки плагинов jquery, например

data-plugin-options='{"directionNav":false, "animation":"slide", "slideshow": false, "maxVisibleItems": 6}'

компилятор диазо жалуется на это как

Invalid expression [0:0]
compilation error, element 'div' [400:0]
Attribute 'data-plugin-options': Failed to compile the expression ''directionNav':false, 'animation':'slide', 'slideshow': false, 'maxVisibleItems': 6' in the AVT. [0:0]
Invalid expression [0:0]
compilation error, element 'div' [445:0]
Attribute 'data-plugin-options': Failed to compile the expression ''directionNav':false, 'animation':'slide'' in the AVT. [0:0]
Invalid expression [0:0]
compilation error, element 'div' [512:0]
Attribute 'data-plugin-options': Failed to compile the expression ''controlNav':false, 'slideshow': false, 'animationLoop': true, 'animation':'slide'' in the AVT. [0:0]

и ломает рендеринг.

Есть ли способ заставить эту работу работать (помимо переноса conf на js)?


person simahawk    schedule 28.08.2013    source источник
comment
Можем ли мы увидеть увеличенный фрагмент статической темы?   -  person SteveM    schedule 02.09.2013


Ответы (3)


Кажется, единственное решение — и это действительно имеет смысл — разделить параметры на более чем один атрибут data. Нравиться:

data-plugin-directionNav="false"
data-plugin-animation="slide"
data-plugin-slideshow="false"
data-plugin-maxVisibleItems="6"
person simahawk    schedule 03.09.2013

Это СКАЗКИ выражения. Попробуйте начать с «строка:». Вам нужно экранировать '$' и ';' если вы их используете.

Посетите страницу plone.app.theming в PyPI; найдите «Правая сторона — это выражение TALES» для раздела документации, посвященного этому.

person SteveM    schedule 29.08.2013
comment
Я попробовал это, но ничего не изменилось. Та же ошибка. Я думаю, что он предназначен для работы только с параметрами темы, но мне это нужно в самом статическом html. - person simahawk; 02.09.2013
comment
Я действительно думал о параметрах темы. Похоже, я неправильно понял проблему. - person SteveM; 02.09.2013

Скобки должны быть экранированы, то есть {{ и }}, иначе xslt-движок попытается оценить/скомпилировать выражение в AVT.

Кроме того, значение атрибута должно быть заключено в двойные кавычки "...", а значения dict — в одинарные кавычки '...', как показано ниже:

attributename="{{xyz:'abc'}}"

это превратится в

attributename="{xyz:'abc'}"

Помните: когда вы загружаете html-шаблон без диазо (т.е. напрямую из вашей файловой системы), вы не должны выходить за фигурные скобки. В противном случае ваш плагин в конечном итоге не будет рассматривать его как строку json.

person wolfrevo    schedule 26.11.2013