【问题标题】:Angular CLI and StyleUrlsAngular CLI 和 StyleUrls
【发布时间】:2018-04-10 13:38:39
【问题描述】:

我还是 Angular 的新手,并注意到如果向组件提供 StyleUrls 属性,它们似乎不会自动集成到 styles.js 中,但前提是我将它导入到我的主样式文件中。 实际上我认为,这没有必要,现在我问自己我添加 StyleUrls 是为了什么?!我错过了配置或设置中的某些内容吗?是因为我用的是LESS吗?

非常感谢任何建议。

干杯, 汤姆

【问题讨论】:

    标签: angular angular-cli angular-components


    【解决方案1】:

    好的,所以我只是回答我自己以及现在和将来面临同样问题的所有其他初学者:

    我的问题是误解了 Angular 中的样式行为。

    假设我们有一个带有选择器app-root 的组件app.component.ts 和一个添加到组件属性styleUrls 的样式文件app.component.css(或更少或其他)。 现在,如果我将选择器 app-root 的样式添加到组件的样式表中,它 不会 被识别。如果我将它添加到全局 styles.css(或更少或其他),它 被识别。

    结论

    Angular识别样式文件中的样式选择器用于组件的子元素,但不能识别组件的根元素本身(我仍然觉得令人困惑)。

    【讨论】:

    【解决方案2】:

    您可以将全局 less 文件添加到 angular-cli.json 文件中的样式部分:

    "styles": [ "my-style.less", 
                 "styles.css"]
    

    在你的组件中你可以使用:

    styleUrls: ['./component.less'] 
    

    你可以像这样创建一个新的应用程序以防使用更少:

    ng new your_project --style less
    

    【讨论】:

    • 而正是组件不工作。我已经尝试了 styleUrls 的所有可能路径,但它们的内容被忽略/不添加。如果路径不正确,Webpack 会正确地抱怨,所以至少路径似乎可以被识别。但是 Angular 并没有加载它们。仅当我将它们作为“导入”语句添加到全局样式时。
    猜你喜欢
    • 2018-12-02
    • 1970-01-01
    • 2018-03-12
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-17
    相关资源
    最近更新 更多