在Polymer.dart中切换样式表URL

时间:2014-03-17 02:18:50

标签: css dart dart-polymer

我有一个自定义元素,我想成为主题。但是,我放在模板中的link元素似乎被Polymer替换为包含URL内容的style元素(即使在Dartium中),这意味着我既不能绑定{ {1}}属性(我听说无论如何都不起作用)也不会以事先的方式更改它。

实际上,即使不能切换它,我也希望能够在创建元素时设置一次,因此我可以创建具有不同主题的元素的不同实例。

有办法做到这一点吗?

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');"));
}