我有一个自定义元素,我想成为主题。但是,我放在模板中的link
元素似乎被Polymer替换为包含URL内容的style
元素(即使在Dartium中),这意味着我既不能绑定{ {1}}属性(我听说无论如何都不起作用)也不会以事先的方式更改它。
实际上,即使不能切换它,我也希望能够在创建元素时设置一次,因此我可以创建具有不同主题的元素的不同实例。
有办法做到这一点吗?
答案 0 :(得分:2)
事实证明,如果添加带CSS导入的样式元素,则可以以编程方式指定样式表:
factory MyView(String themeUrl) {
MyView view = new Element.tag('my-view');
view.shadowRoot.append(new StyleElement()
..id = 'theme'
..appendText("@import url('$themeUrl');"));
return view;
}
我能够像这样切换它:
void switchTheme(String themeUrl) {
StyleElement theme = shadowRoot.getElementById('theme');
theme.replaceWith(new StyleElement()
..id = 'theme'
..appendText("@import url('$themeUrl');"));
}