我的自定义元素:
<core-ajax auto method="GET" url="http://example.com/book" handleAs="json" response="{{response}}"></core-ajax>
<core-header-panel mode="cover" layout horizontal flex>
<div class="core-header tall">{{articlename}}</div>
<div class="content" flex >
{{response[0].content}}
</div>
</core-header-panel>
db中的内容以markdown格式存储,在请求时将转换为html标记,此过程很好,我得到了转换后的html标记,但是当它动态插入页面时,html标记未呈现而原始的html标签。
标记为html :(我使用django-markdown-deux)
markdown(content)
来自db的原始数据:
[{"id":4,"title":"css 1","category":"CSS","articletags":["sa","asd"],"content":"*asdsdsasadsa*\r\n\r\n sdsadsadssdsasdsa","like":0,"createtime":"2015-04-17T05:58:01Z"}]
从db解析数据:
[{"id":4,"title":"css 1","category":"CSS","articletags":["sa","asd"],"content":"<p><em>asdsdsasadsa</em></p>\n\n<pre><code>sdsadsadssdsasdsa\n</code></pre>\n","like":0,"createtime":"2015-04-17T05:58:01Z"}]
结果是:
我错过了什么吗?
答案 0 :(得分:1)
出于安全原因,Polymer在数据绑定时会转义任何HTML。 您必须在响应进入时手动设置内容。例如:
<core ajax ... on-core-response="{{handleResponse}}"></core-ajax>
<div id="content"></div>
...
Polymer({
...
handleResponse: function (e) {
this.injectBoundHTML(e.detail.response[0].content, this.$.content);
}
});
有关详情,请参阅official docs。