Angular 5 с Angular Material - эффект ряби не работает - PullRequest
0 голосов
/ 25 апреля 2018

Я пытался применить обычную кнопку для углового материала, но эффект ряби не будет работать вообще.

Я получил:

import 'core-js/es6/reflect';
import 'core-js/es7/reflect';
import 'zone.js/dist/zone';
import 'hammerjs';
import 'web-animations-js';
import { MatCheckboxModule } from '@angular/material';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import {MatButtonModule} from '@angular/material/button';

imports: [
    MatButtonModule,
    MatCheckboxModule,
    BrowserAnimationsModule
  ],
  providers: [WeatherService],
  bootstrap: [AppComponent, WeatherComponentComponent]
})

В глобальном файле styles.cssфайл, который у меня есть: @import

'~@angular/material/prebuilt-themes/deeppurple-amber.css';
dependancies:
"dependencies": {
    "@angular/animations": "^5.2.10",
    "@angular/cdk": "^5.2.5",
    "@angular/common": "^5.2.10",
    "@angular/compiler": "^5.2.10",
    "@angular/core": "^5.2.10",
    "@angular/forms": "^5.2.10",
    "@angular/http": "^5.2.10",
    "@angular/material": "^5.2.5",
    "@angular/platform-browser": "^5.2.10",
    "@angular/platform-browser-dynamic": "^5.2.10",
    "@angular/router": "^5.2.10",
    "core-js": "^2.4.1",
    "hammerjs": "^2.0.8",
    "rxjs": "^5.0.1",
    "ts-helpers": "^1.1.1",
    "web-animations-js": "^2.3.1",
    "zone.js": "^0.8.26"

  "devDependencies": {
    "@angular/cli": "^1.7.4",
    "@angular/compiler-cli": "^5.2.10",
    "@types/jasmine": "^2.8.6",
    "@types/node": "^9.6.6",
    "codelyzer": "^4.3.0",
    "jasmine-core": "^3.1.0",
    "jasmine-spec-reporter": "^4.2.1",
    "karma": "^2.0.2",
    "karma-chrome-launcher": "^2.0.0",
    "karma-cli": "^1.0.1",
    "karma-jasmine": "^1.0.2",
    "karma-remap-istanbul": "^0.6.0",
    "protractor": "^5.3.1",
    "ts-node": "^6.0.0",
    "tslint": "^5.9.1",
    "typescript": "^2.7.0"
  }

HTML:

<button mat-raised-button color="primary">Button</button>

Я также пытался связать таблицу стилей в глобальном HTML - но все равно не работает.

Ответы [ 4 ]

0 голосов
/ 26 февраля 2019

У меня была такая же проблема.Когда я создавал кнопки, используя материал, эффект ряби не возникал.Позже я обнаружил, что не включил в проект какую-либо тему стиля.Поэтому очень важно проверить, когда вы собираетесь запустить проект в Angular-Material, чтобы включить хотя бы его предварительно созданную таблицу стилей темы.Тогда вы не пропустите волновой эффект.Это было мое решение моей проблемы.

0 голосов
/ 25 мая 2018

У меня возникла та же проблема, и я решил проблему в конце.Я посмотрел несколько SO сообщений, но ни один из них не работает в моем случае.Ниже я покажу, как я это сделал, так что это может помочь любому, кто сталкивался с проблемой.

Context

Я работал над учебником : Tour of Heroes inСайт Angular, так что мое приложение было довольно маленьким и простым.Чтобы использовать компоненты материала, я следую за страницей «Начало работы» на официальном сайте Angular Material .Я использую Angular CLI, поэтому я импортировал готовую тему css в styles.css, импортировал MatButtonModule и попробовал <button mat-button>basic</button>, но эффект ряби кнопок просто не работал.

Решение

В index.html добавить класс mat-app-background к телу, подобному этому

<body class="mat-app-background">
...
</body>

И эффект пульсации в кнопке теперь работает!

Объяснение Пожалуйста,

Это решение основано на Руководстве по тематике угловых материалов .У них есть несколько слов о дополнительных настройках до того, как тема действительно заработает:

Наконец, если содержимое вашего приложения не помещено внутри элемента mat-sidenav-container, вам нужно добавить класс mat-app-background вваш элемент обертки (например, body).Это гарантирует, что правильный фон темы будет применен к вашей странице.

Это не упоминается на странице Angular Material Getting Started .Так что, если вы перейдете на эту страницу и сразу же протестируете mat-button, это может не сработать.

Это работает для всех?

Определенно нет.Решение выше, скорее всего, сработает, если ваша ситуация похожа на мою.Но я покажу вам, какой шаг я сделал раньше, что приводит к моей ситуации.

Я использую Angular CLI для создания своего приложения Angular, и я следовал учебному пособию Getting Started , как показано ниже:

  1. Я установил эти пакеты: @angular/material @angular/cdk @angular/animations
  2. Я импортировал MatButtonModule в app.module.ts.

В app.module.ts У меня

...
import {MatButtonModule} from '@angular/material';

@NgModule({
  ...
  imports: [
    BrowserModule,
    ...
    MatButtonModule, // import the Angular Material modules after Angular's BrowserModule, as described in the tutorial.
  ],
  ...
})
Импорт готовых тем CSS

В styles.css

@import '~@angular/material/prebuilt-themes/pink-bluegrey.css';
...
Теперь добавьте кнопку в HTML

В app.component.html

...
<button mat-button>Basic</button>
...

И я нажал на кнопку и эффект ряби не сработал.Так что я застрял здесь.Но странно то, что если я переключаюсь на предварительно созданную тему deeppurple-amber.css, тогда пульсация работает без применения Solution выше.

Если я переключаюсь на другие предварительно созданные темы, такие как purple-green.css или pink-bluegrey.css, волновой эффект снова не работает.Я не уверен, в чем причина, но, вероятно, тема все еще не настроена должным образом, поэтому все становится непредсказуемым.Иногда это работает, иногда нет, что не является хорошим знаком, поэтому давайте перейдем к следующему шагу.

Если ваш волновой эффект не работал до сих пор, как я, следуйте информации в Solution и инструкциям в Theming Guide .Согласно руководству по тематике, вам нужно либо элемент mat-sidenav-container, либо класс mat-app-background, чтобы правильно настроить тематику материала.Тогда, наконец, волновой эффект должен сработать.
0 голосов
/ 09 января 2019

Не решение для OP, но это то, что вызывало его для меня:

Убедитесь, что BrowserAnimationsModule импортировано:

import { BrowserAnimationsModule } from '@angular/platform-browser/animations';

@NgModule({
  ...
  imports: [
    BrowserAnimationsModule
  ],
  ...
})

В проекте, над которым я работаю, был включен NoopAnimationsModule, сначала удалите это;Вы не можете добавить их обоих.

0 голосов
/ 26 апреля 2018

Ладно, я думаю, что, возможно, обнаружил какую-то ошибку в угловых точках, поскольку мне удалось отследить причину.Это было связано с использованием переменной внутри здесь: {{reports.list [0] .dt}} Температура (по Цельсию): {{weathers.main.temp}}.- Таким образом, в основном используя {{weathers.main.temp}} внутри, это сломало анимацию на всей странице.-

...