Как интерпретировать HTML, сгенерированный на PHP в шаблоне Magento 2
Это трудно объяснить простыми предложениями, поэтому здесь код:
Шаблон.phtml
<p id="text"><?php /* @escapeNotVerified */ echo __('Some text [[REPLACE]]') ?></p>
Javascript-код
var list = '<ul><li>A</li><li>B</li></ul>';
$("#text").text(function(index, text) {
return text.replace("[[REPLACE]]", list);
});
Фактический результат
Some text <ul><li>A</li><li>B</li></ul>
Желаемый результат
Некоторый текст
- A
- B
Похоже, что Magento 2 не будет интерпретировать сгенерированный HTML. Есть ли способ?
1 answers
Как отмечено в документации jQuery для метода .text(), он преобразует html-элементы в текстовый вывод.
Цитирую:
Код
$( "div.demo-container" ).text( "<p>This is a test.</p>" );
будет выдан следующий вывод DOM:
<div class="demo-container"><p>This is a test.</p></div>
Он появится на отрисованной странице так, как если бы теги были выставленный напоказ, вот так:
<p>This is a test</p>
Если вы хотите добавить html таким образом, похоже, что метод .html() больше подходит для того, что вы ищете для.
Что-то вроде этого должно сработать:
var list = '<ul><li>A</li><li>B</li></ul>';
$('#text').html($('#text').html().replace('[[REPLACE]]', list));