我正在将Angular 2与角度材料一起使用,我需要创建自定义主题,以便为组件使用自定义颜色。我遵循了有角度的文档,但我无法让它运行。
到目前为止我所做的:
1.我创建了一个文件my-theme.scss:
@import "../node_module/@angular/material/_theming";
@include mat-core();
$my-theme-primary: mat-palette($mat-amber);
$my-theme-accent: mat-palette($mat-orange, A200, A100, A400);
$my-theme-warn: mat-palette($mat-red);
$my-theme: mat-light-theme($my-theme-primary, $my-theme-accent, $my-theme-warn);
@include angular-material-theme($my-theme);
2.我将创建的SASS文件导入styles.css
@import "my-theme.scss"
3.我在.angular cli中引用了它。样式部分中的json文件:
"styles": [
"styles.css",
"my-theme.scss"
]
我在本地主机下的网站告诉我“编译失败”模块未找到:“../node_modules/@angular/material/_theming”。
我尝试了导入路径的几种变体(“~@angular/材料/_theming”,“../node_modules/@angular/材料/_theming“,”~@angular/材料/主题“,”../node_modules/@angular/材料/主题“...在我的主题.在Angular Docs中,他们使用“主题”作为位置,但我在某处读到,Angular材质将文件移动到“_theming”,这也在我的污垢器结构中发现。
当我使用路径“.../node_modules/@角/材料/_theming.scss”编译器找到文件,但编译失败,由于另一个错误:
Module build failed: Missed semicolon (30:1)
28 | // Media queries
29 | // TODO: Find a way to respect media query ranges.
> 30 | // TODO: For example the xs-breakpoint should not interfere with the sm-breakpoint.
| ^
31 | $mat-xsmall: 'max-width: 600px';
32 | $mat-small: 'max-width: 960px';
这对我来说似乎很奇怪,因为_theming.scss文件是一个角度材质文件,错误的位置是注释。此外,我没有在Web上的其他工作实现中看到任何以.scss结尾的导入语句。
我花了几个小时搜索如何添加自定义主题到我的网站...我错过了什么吗?我对Angular 2和SASS很陌生。
PS:我已经有点困惑了,如果我是否应该将我的主题.scss导入到样式中.css。Angular Docs对此只字未提,但我阅读了一些评论,人们指出,这解决了他们使用自定义角度材料主题的问题。
项目结构:
my-project
|--node_modules
| |--@angular
| |--material
| |--prebuild-themes
| |--_theming.scss
|--src
| |--app
| | |--my-component.css | html | ts
| | |--app.module.ts
| |--assets
| |--index.html
| |--main.ts
| |--my-theme.scss
| |--styles.css
|--.angular-cli.json
包裹。json文件:
"dependencies": {
"@angular/animations": "^4.3.1",
"@angular/cdk": "^2.0.0-beta.8",
"@angular/common": "^4.0.0",
"@angular/compiler": "^4.0.0",
"@angular/core": "^4.0.0",
"@angular/forms": "^4.0.0",
"@angular/http": "^4.0.0",
"@angular/material": "^2.0.0-beta.8",
"@angular/platform-browser": "^4.0.0",
"@angular/platform-browser-dynamic": "^4.0.0",
"@angular/router": "^4.0.0",
"core-js": "^2.4.1",
"hammerjs": "^2.0.8",
"rxjs": "^5.1.0",
"zone.js": "^0.8.4"
},
"devDependencies": {
"@angular/cli": "1.2.1",
"@angular/compiler-cli": "^4.0.0",
"@angular/language-service": "^4.0.0",
"@types/jasmine": "~2.5.53",
"@types/jasminewd2": "~2.0.2",
"@types/node": "~6.0.60",
"codelyzer": "~3.0.1",
"jasmine-core": "~2.6.2",
"jasmine-spec-reporter": "~4.1.0",
"karma": "~1.7.0",
"karma-chrome-launcher": "~2.1.1",
"karma-cli": "~1.0.1",
"karma-coverage-istanbul-reporter": "^1.2.1",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.1.2",
"ts-node": "~3.0.4",
"tslint": "~5.3.2",
"typescript": "~2.3.3"
}
Windows 7,64位Firefox 52.2.1 Visual Studio代码1.14.1
你可能需要将应用更改为使用 sass。在角度-cli 文件上,更改以下行:
"styleExt": "css",
收件人:
"styleExt": "scss",
然后将所有 css 文件重命名为 scss。把你的我的他们放在那里。
重命名后,在cli上进行更改
"styles": [
"styles.scss",
remove this line =>"my-theme.scss"
]
然后在“资源”文件夹中创建名为“样式”的文件夹。
所以它会是这样的
|--assets
|--styles
|--_my-theme.scss
然后是风格。scss文件导入如下:
@import "~assets/styles/_my-theme.scss";
这将有助于:
> < li >将您的主题文件名更改为< code>_my-theme.scss < li >将您的< code>styles.css更改为< code>styles.scss < li>
将您的主题导入< code>styles.scss文件,如下所示:
@导入'/路径/to/your/theme/my-theme';//这里不需要下划线和文件扩展名
您不需要将主题文件包含在样式中:[]
> 到目前为止,我使用角2快速入门创建了一个新项目。 我决定开始使用angular 2 cli,并创建了一个新的angular 2 cli项目。 移动了我的所有文件并重新安装了所有软件包。 现在,当我试图在CLI项目中使用角2材料时,我遵循了这里的指南,但这是我得到的: 会出什么问题?
我有一个mat select,其中的选项是数组中定义的所有对象。我试图将该值设置为其中一个选项的默认值,但是当页面呈现时,该值处于选中状态。 我的typescript文件包含: 我的HTML文件包含: 我已尝试将和
我创建了一个新的angular5项目,在该项目上,我将angular material用于前端组件()。到目前为止一切都很好,但主要的问题是如何添加一个自定义主题。我没有在此项目上使用scss编译器,所以我所做的是将所有css组件导入到style.css中,如 问题是我不知道如何修改预构建的主题的底色,或者为我的主题生成另一个带有其他底色的css。如果有人能帮我,我会非常感激的!
我想在进行某些处理时显示一个进度条覆盖图。我可以计算完成百分比,所以我想使用一个确定的进度条。对于覆盖部分,我想使用一个对话框。基本上,我想做这里要做的事情(Angular 2 Material Progress微调器:显示为叠加),但我不需要微调器。因此,我的组件将如下所示: 模板: 元件: 然后我使用这个组件的代码如下: 我发现了这一点(如何将数据传递到angular material 2的对
我试图创建自己的自定义angular material组件,该组件能够使用控件。 除此之外,我希望该控件使用指令。 我的目的只是创建一个更好看的组件,该组件包含一个集成的clear按钮和自定义css箭头,如下图所示。我使用标准组件成功地获得了它,并添加了我想要的内容,但现在我想将它导出到泛型组件中。 null 即使正确选择了值,我的窗体也无效。 选择某个选项后,占位符自身设置不正确。 自动完成筛选