Вземете html код в json-обект от php, като използвате core-ajax в Polymer

Искам да върна данни с json от php-скрипт. Данните съдържат html тагове, но когато се опитам да използвам данните като html, виждам „таговете“.

HTML-tags will be displayed as: <h1>hello</h1> and not:

Здравейте

Използвам маркера <core-ajax> в Polymer

<core-ajax id="ajax" auto url="php/directory_json.php" on-core-response="{{docsLoaded}}" handleAs="json"></core-ajax>

Javascript

var template = document.querySelector('template[is="auto-binding"]');
var docs = []
template.docsLoaded = function() {
    this.docs = this.$.ajax.response.slice(0);
}

HTML

<template repeat="{{doc in docs}}"><div>{{doc.content}}</div></template>

PHP

$my_html = array(array('uid'=>'0', 'content'=>'<h1>hello</h1>'));
echo json_encode($my_html);

Всяка помощ ще бъде оценена

Редактиране: Изглежда, че не можете просто да поставите променлива с html-код. Трябва да го приложите в елемента с innerHTML() ($.html() с jquery).

Сега се натъкнах на друг проблем, не мога да насоча елемента си с неговия ID, пише "undefined".

HTML

<template repeat="{{doc in docs}}">
    <div id="div-content-"{{doc.uid}}></div>
    {{myfunction(doc.uid, doc.content)}}
</template>

JavaScript

myfunction = function(id, content){
    $('#div-content-'+id).html(content);
}

Изглежда, че елементът не е "приложен" към html, докато не завърши целият цикъл? Някаква идея как да се постигне това?


person wirlez    schedule 23.01.2015    source източник


Отговори (1)


можете да използвате функцията htmlentities:

$my_html = array(array('uid'=>'0', 'content'=>htmlentities('<h1>hello</h1>')));

по този начин инструментът за отваряне на етикет < ще стане &lt; и няма да бъде интерпретиран

person Mr.Manhattan    schedule 23.01.2015
comment
Проблемът е, че искам html тага да се показва като html! Това ще ми покаже само h1hello/h1 - person wirlez; 23.01.2015
comment
хм...може би това може да помогне: stackoverflow.com/questions/21060890/ - person Mr.Manhattan; 23.01.2015
comment
Благодаря ви, изглежда, че не можете просто да поставите променлива с html-код. Трябва да го приложите в елемента с $.html() или innerHTML(). За съжаление в момента имам друг проблем, изглежда, че елементът не е дефиниран, докато цикълът не приключи. Така че, когато се опитам да достигна моя елемент, той казва undefined :/ - person wirlez; 23.01.2015
comment
За това, когато се опитвам да достигна своя елемент, той казва undefined, току-що зададох този въпрос тук: stackoverflow.com/questions/28116154/ - person Goce Ribeski; 23.01.2015