Я новичок в Angular 18 и пытаюсь использовать материал Angular для простой разработки приложений.
Когда я добавляю @angular/material с темой лазурно-синего цвета, я сталкиваюсь с проблемами ниже:
Could not find Angular Material core theme. Most Material components may not work as expected. For more info refer to the theming guide: https://material.angular.io/guide/theming
Я попробовал выполнить шаги, описанные в официальной документации углового материала.
Руководство по темам Angular Material
Кроме того, я также попытался добавить @import "../node_modules/@angular/material/prebuilt-themes/deeppurple-amber.css";
в свой файл style.scss и обновить путь в angular.json, но пока безуспешно.
Может ли кто-нибудь помочь мне избавиться от этих проблем и настроить тему углового материала.
Я попробовал точные шаги, вот что я заметил.
Установщик не изменяет styles.scss
, а добавляет к angular.json
стиль по умолчанию:
...
"styles": [
"@angular/material/prebuilt-themes/azure-blue.css",
"src/styles.scss"
],
...
После этого включаем кнопки по умолчанию html и ts, как показано ниже. Ниже приведена рабочая демо-версия Stackblitz.
import { Component } from '@angular/core';
import { MatIconModule } from '@angular/material/icon';
import { MatDividerModule } from '@angular/material/divider';
import { MatButtonModule } from '@angular/material/button';
@Component({
selector: 'app-root',
standalone: true,
imports: [MatButtonModule, MatDividerModule, MatIconModule],
templateUrl: './app.component.html',
styleUrl: './app.component.scss',
})
export class AppComponent {
title = 'test';
}
<section>
<div class = "example-label">Basic</div>
<div class = "example-button-row">
<button mat-button>Basic</button>
<button mat-button color = "primary">Primary</button>
<button mat-button color = "accent">Accent</button>
<button mat-button color = "warn">Warn</button>
<button mat-button disabled>Disabled</button>
<a mat-button href = "https://www.google.com/" target = "_blank">Link</a>
</div>
</section>
<mat-divider></mat-divider>
<section>
<div class = "example-label">Raised</div>
<div class = "example-button-row">
<button mat-raised-button>Basic</button>
<button mat-raised-button color = "primary">Primary</button>
<button mat-raised-button color = "accent">Accent</button>
<button mat-raised-button color = "warn">Warn</button>
<button mat-raised-button disabled>Disabled</button>
<a mat-raised-button href = "https://www.google.com/" target = "_blank">Link</a>
</div>
</section>
<mat-divider></mat-divider>
<section>
<div class = "example-label">Stroked</div>
<div class = "example-button-row">
<button mat-stroked-button>Basic</button>
<button mat-stroked-button color = "primary">Primary</button>
<button mat-stroked-button color = "accent">Accent</button>
<button mat-stroked-button color = "warn">Warn</button>
<button mat-stroked-button disabled>Disabled</button>
<a mat-stroked-button href = "https://www.google.com/" target = "_blank"
>Link</a
>
</div>
</section>
<mat-divider></mat-divider>
<section>
<div class = "example-label">Flat</div>
<div class = "example-button-row">
<button mat-flat-button>Basic</button>
<button mat-flat-button color = "primary">Primary</button>
<button mat-flat-button color = "accent">Accent</button>
<button mat-flat-button color = "warn">Warn</button>
<button mat-flat-button disabled>Disabled</button>
<a mat-flat-button href = "https://www.google.com/" target = "_blank">Link</a>
</div>
</section>
<mat-divider></mat-divider>
<section>
<div class = "example-label">Icon</div>
<div class = "example-button-row">
<div class = "example-flex-container">
<button
mat-icon-button
aria-label = "Example icon button with a vertical three dot icon"
>
<mat-icon>more_vert</mat-icon>
</button>
<button
mat-icon-button
color = "primary"
aria-label = "Example icon button with a home icon"
>
<mat-icon>home</mat-icon>
</button>
<button
mat-icon-button
color = "accent"
aria-label = "Example icon button with a menu icon"
>
<mat-icon>menu</mat-icon>
</button>
<button
mat-icon-button
color = "warn"
aria-label = "Example icon button with a heart icon"
>
<mat-icon>favorite</mat-icon>
</button>
<button
mat-icon-button
disabled
aria-label = "Example icon button with a open in new tab icon"
>
<mat-icon>open_in_new</mat-icon>
</button>
</div>
</div>
</section>
<mat-divider></mat-divider>
<section>
<div class = "example-label">FAB</div>
<div class = "example-button-row">
<div class = "example-flex-container">
<div class = "example-button-container">
<button
mat-fab
color = "primary"
aria-label = "Example icon button with a delete icon"
>
<mat-icon>delete</mat-icon>
</button>
</div>
<div class = "example-button-container">
<button
mat-fab
color = "accent"
aria-label = "Example icon button with a bookmark icon"
>
<mat-icon>bookmark</mat-icon>
</button>
</div>
<div class = "example-button-container">
<button
mat-fab
color = "warn"
aria-label = "Example icon button with a home icon"
>
<mat-icon>home</mat-icon>
</button>
</div>
<div class = "example-button-container">
<button
mat-fab
disabled
aria-label = "Example icon button with a heart icon"
>
<mat-icon>favorite</mat-icon>
</button>
</div>
</div>
</div>
</section>
<mat-divider></mat-divider>
<section>
<div class = "example-label">Mini FAB</div>
<div class = "example-button-row">
<div class = "example-flex-container">
<div class = "example-button-container">
<button
mat-mini-fab
color = "primary"
aria-label = "Example icon button with a menu icon"
>
<mat-icon>menu</mat-icon>
</button>
</div>
<div class = "example-button-container">
<button
mat-mini-fab
color = "accent"
aria-label = "Example icon button with a plus one icon"
>
<mat-icon>plus_one</mat-icon>
</button>
</div>
<div class = "example-button-container">
<button
mat-mini-fab
color = "warn"
aria-label = "Example icon button with a filter list icon"
>
<mat-icon>filter_list</mat-icon>
</button>
</div>
<div class = "example-button-container">
<button
mat-mini-fab
disabled
aria-label = "Example icon button with a home icon"
>
<mat-icon>home</mat-icon>
</button>
</div>
</div>
</div>
</section>
У Stackblitz возникли проблемы с запуском; скачайте проект и запустите его.
cd test
-> npm i && npm run start
@DhyeyDave поделиться репозиторием на GitHub? или перезапустить редактор кода? сравните свой код со stackblitz, чтобы определить, что не так!
Пожалуйста, найдите ссылку на репозиторий GitHub ниже github.com/Raghu0701/angular-material-18-test Я несколько раз пытался перезапустить редактор кода, несколько раз пытался создать проект, но безуспешно.
@DhyeyDave Код запустился на моем локальном компьютере без проблем, возможно, попробуйте обновить angular cli npm i @angular/cli@latest
и npm i @angular/core@latest
, затем попробуйте обновить узел до версии, совместимой с angular 18.
То есть вы говорите, что можете видеть цвет фона в пользовательском интерфейсе на панели инструментов?
@DhyeyDave в репозитории GitHub нет панели инструментов, проверьте app.com.html
Спасибо, что заглянули в репозиторий GitHub @Naren Murali. Я вижу панель инструментов mat-tools по этому пути test/src/app/app.comComponent.html внутри основной ветки репозитория. Не могли бы вы подтвердить, проверяем ли мы одно и то же место?
Возникла проблема с размещением маркера, загруженного M3, в версии 18.0.0 Angular Material Components. Проблема решена в версии библиотеки 18.0.1. Вы можете найти соответствующую проблему , журнал релизов и соответствующее исправление на GitHub.
Попробуйте обновить @angular/material
до версии 18.0.1, чтобы решить вашу проблему.
Спасибо @UnlikePluto. Кажется, это сработало. Но я все еще вижу проблему с цветом панели инструментов. Есть ли шанс, что вы можете помочь в том же?
Вы нашли решение? Я обновил материал до версии 18.0.1, но при добавлении материала в проект все еще вижу предупреждение, а панель инструментов не имеет цвета фона.
Да, вы можете обратиться к следующему вопросу SO stackoverflow.com/q/78535414/9647266 . Вы можете использовать подход M2: stackoverflow.com/a/78555393/9647266 или подход M3 для оформления тем: stackoverflow.com/a/78535441/9647266
Спасибо @Naren Murali за ваш ответ, однако я все еще вижу предупреждение/ошибку в инструментах разработки. Кроме того, когда я попытался добавить панель инструментов и присвоить ей цвет = 'основной', в браузере не было никаких изменений. я что-то здесь упускаю?