Как интерпретировать 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. Есть ли способ?

Author: Antoine Subit, 2016-12-23

1 answers

Как отмечено в документации jQuery для метода .text(), он преобразует html-элементы в текстовый вывод.

Цитирую:

Код $( "div.demo-container" ).text( "<p>This is a test.</p>" ); будет выдан следующий вывод DOM:

<div class="demo-container">&lt;p&gt;This is a test.&lt;/p&gt;</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));
 2
Author: Jonathan Wommack, 2016-12-23 20:59:41