Как я могу сделать необработанный HTML в Markojs - PullRequest
2 голосов
/ 08 апреля 2019

Я использую Markojs в качестве своей библиотеки пользовательского интерфейса, и мне нужно визуализировать необработанный HTML-код, включенный в модель данных, полученную с сервера.

Например, скажем, моя модель данных извлекается с серверавыглядит так:

data = {
    copy: "<p class='myClass'>Hello World!</p>"
}

Я хочу, чтобы я мог отобразить свою копию в моем шаблоне Marko примерно так:

.copy
    ${input.data.copy}

и правильно отобразить HTML-элемент,но это не совсем работает, как ожидалось.Он отображает страницу, но также показывает "<" до и ">" после в виде текста на странице.

Похоже, эта - нужная мне функция,но не рекомендуется.Как правильно сделать это?

Вот решение:

.copy -- $!{input.data.copy}

1 Ответ

3 голосов
/ 08 апреля 2019

Marko по умолчанию экранирует текстовые значения, но вы можете использовать $!{input.data.copy} (обратите внимание на !), чтобы указать Marko, что вы хотите использовать необработанный HTML.

https://markojs.com/docs/syntax/#dynamic-text

Когда вы делаете это, вы по существу отключаете функцию безопасности Marko, поэтому будьте уверены, что если какой-либо динамический контент, который вы получаете, получен изнебезопасное происхождение: его экранируют в другом месте, чтобы предотвратить внедрение кода на вашу страницу.

...