为什么 polymer 不以 json 格式呈现从服务器获取的 html 标记?

why polymer not render html markup fetched from server in json format?

我的自定义元素:

<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)

来自数据库的原始数据:

[{"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"}]

来自数据库的解析数据:

[{"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"}]

结果是:

我是不是漏掉了什么?

出于安全原因,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