样式不适用于聚合物网络组件中的动态内容

时间:2015-08-26 15:45:29

标签: css polymer-1.0 shadow-dom

我在这里重新创建一个h2元素:

<link rel="import" href="../../js/lib/polymer/polymer.html">
    <dom-module id="x-custom">
    <style>
        h2 { color: green; }
    </style>
    <template>
        <div id="content">
            <h2>TEST</h2>
        </div>
    </template>

    <script>
    (function() {
        Polymer({
            is: 'x-custom',
            ready: function() {
                this.$.content.innerHTML = '<h2>TEST 2</h2>';
                this.updateStyles();
            }
        });
    })();
    </script>
</dom-module>

如果我跳过准备功能&#34; TEST&#34;是绿色的,但不是&#34; TEST 2&#34;。思考updateStyles()可以解决这个问题,但没有。任何想法为什么这不起作用? (Polymer 1.0,Chrome 44)

2 个答案:

答案 0 :(得分:1)

您不能像往常一样使用innerHTML,您需要使用Polymers自己的DOM API。这有效:

Polymer.dom(this.$.content).innerHTML = '<h2>TEST 2</h2>';

答案 1 :(得分:0)

绑定数据怎么样?

<dom-module id="x-custom">
<style>
    h2 { color: green; }
</style>
<template>
    <div id="content">
        <h2>{{test}}</h2><!-- this will be in green color -->
    </div>
</template>

<script>
(function() {
    Polymer({
        is: 'x-custom',
         properties:{
          test:{
            type:String,
            value:"test 1"
          },
         },
        ready: function() {
          this.test = "test 2"
        }
    });
})();
</script>