Polymer 不反映默认属性的聚合物

Polymer 不反映默认属性的聚合物,polymer,polymer-1.0,Polymer,Polymer 1.0,我对Polymer还不熟悉,发现文档非常稀疏。我正在尝试根据初始的反射属性值来设置自定义元素的样式,无论我做什么,反射似乎都不起作用-我的元素上没有显示任何属性。如果我在代码中设置属性,也不会出现 <dom-module id="so-login"> <style> :host { background-color: white; } :host[loggedin] form, :host:not([expanded]) form

我对Polymer还不熟悉,发现文档非常稀疏。我正在尝试根据初始的反射属性值来设置自定义元素的样式,无论我做什么,反射似乎都不起作用-我的元素上没有显示任何属性。如果我在代码中设置属性,也不会出现

<dom-module id="so-login">
<style>
    :host {
        background-color: white;
    }
    :host[loggedin] form, :host:not([expanded]) form {
        display: none;
    }
    :host[loggedin] #prompt, :host[expanded] #prompt {
        opacity: 0;
    }
</style>

<template>
</template>

<script>
Polymer({is:'so-login', properties: {
    expanded: { type: String, default: "Test", reflectToAttribute: true }
}});
</script>

:主持人{
背景色:白色;
}
:host[loggedin]表单,:host:not([expanded])表单{
显示:无;
}
:host[loggedin]#提示符,:host[expanded]#提示符{
不透明度:0;
}
聚合物({is:'so-login',性质:{
扩展:{type:String,默认值:“Test”,reflectToAttribute:true}
}});



我用最新的Chrome&Edge运行这个。我遗漏了什么?

我假设您谈论的是“expanded”属性,我在元素的properties对象中没有看到“loggedin”属性的证据

与其将其声明为字符串,不如将其声明为properties对象内的布尔值。默认值设置为value:true,而不是default:true(如果是字符串,则为true)


如果它确实是一个字符串,那么您可能需要将其包含在元素的实例中

在Polymer中,在
:host
中编写属性样式的正确方法是用括号括住属性标记
:host([loggedin])
<so-login></so-login>