因此,我们有一些基本的Mustache标记,它应该在{{{override_css}}}中呈现JSON编码的CSS类。
^
以下是我们如何渲染胡须对象:
....
<div class="js-modal-additional hidden-el"
data-reposition="0"
data-css="{{{override_css}}}">
</div>
....
不幸的是:
<?php
...
$data->override_css =
json_encode(
array(
'position' => 'fixed',
'z-index' => 10,
'top' => 'auto'
)
);
...
?>
我很抱歉,如果之前有这个,但也许我错过了什么?令人惊讶的是,传递有效的JSON有很多困难。我想过使用preg_replace或其他一些hacky方法,但是现在它不是有效的JSON,不是吗?我需要JS能够从data-css中读取和应用CSS,以便覆盖默认值。有什么可以避免的!重要的标签。把它称为糟糕的设计,但我的手在这里被迫。
但是,非常感谢任何帮助!
答案 0 :(得分:0)
您的JSON引号在第一个“{”之后关闭了您的data-css引号。
您需要HTML转义引号。在PHP代码中写:
<?php
...
$data->override_css =
htmlspecialchars(json_encode(
array(
'position' => 'fixed',
'z-index' => 10,
'top' => 'auto'
)
));
...
?>
它会起作用。