@PanelState sentetik özelliğini buldu. Lütfen uygulamanıza “BrowserAnimationsModule” veya “NoopAnimationsModule” ekleyin. '


Yanıtlar:


236

@angular/animationsPaketin kurulu olduğundan emin olun (örn. Çalıştırarak npm install @angular/animations). Ardından, app.module.ts içinde

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

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

PC'de kurulu olup olmadığını nasıl kontrol edebilirim?
Mr dünya çapında

2
npm list --depth=0projenizde yüklü paketleri listeler
Ploppy

1
Zaten kurulmuşsa beklenen sonuç nedir? sadece bunları görebiliyorum:├── @angular/platform-browser@4.3.5 ├── @angular/platform-browser-dynamic@4.3.5
Mr dünya çapında

9
Animasyon için tüm paketleri yükledim ve ayrıca AppModule'a "BrowserAnimationsModule" dosyasını içe aktardım. Ama yine de hatayı alıyor.
crossRT

1
@crossRTD Farklı bir dosyada oluşturduysanız, animasyonunuzu da içe aktarmış mıydınız?
Ploppy

181

Bu hata mesajı genellikle yanıltıcıdır .

Dosyayı içe aktarmayı unutmuş olabilirsinizBrowserAnimationsModule . Ama bu benim sorunum değildi . Herkesin yapması gerektiği gibi BrowserAnimationsModule, kökten içe aktarıyordum AppModule.

Sorun, modülle tamamen alakasız bir şeydi. *ngIfBileşen şablonunda bir canlandırıyordum ama bileşen sınıfında bundan bahsetmeyi unutmuştum .@Component.animations

@Component({
  selector: '...',
  templateUrl: './...',
  animations: [myNgIfAnimation] // <-- Don't forget!
})

Bir şablonda bir animasyon kullanırsanız, bu animasyonu her seferinde bileşenin animationsmeta verilerinde de listelemeniz gerekir .


2
Kesinlikle. Ancak bu arada, benim gibi takılıp kalanlar için ve yalnızca yukarıdaki tavsiyeleri bulanlar için cevabım size deneyebileceğiniz bir şey daha veriyor.
Ward

1
aslında, uygulama bileşeninizin (ana kök) bunu da içerdiğini doğrulamanız gerekir
Lior

2
Ayrıca bu yanıltıcı hatayı aldım (açısal 7.1 kullanarak)
Andi-lo

3
Angular 8.0.0 kullanıyorum ve bu istisnayı anlıyorum ama sizin söylediğiniz gibi bileşendeki animasyonu tanımlamak her şeyi düzeltti, teşekkürler.
Alireza

1
@Alireza ile aynı, Angular 8.0'da da aynı hatayı aldım. Bileşene dahil edilen animasyonlar çalışır.
trungk18

19

Kullanmaya çalıştığımda benzer sorunlarla karşılaştım BrowserAnimationsModule. Aşağıdaki adımlar sorunumu çözdü:

  1. Sil node_modules dir
  2. Kullanarak paket önbelleğinizi temizleyin npm cache clean
  3. Mevcut paketlerinizi güncellemek için burada listelenen bu iki komuttan birini çalıştırın

Gibi bir 404 hatasıyla karşılaşırsanız

http://.../node_modules/@angular/platform-browser/bundles/platform-browser.umd.js/animations

aşağıdaki girdileri ekleyin mapsizin de system.config.js :

'@angular/animations': 'node_modules/@angular/animations/bundles/animations.umd.min.js',
'@angular/animations/browser':'node_modules/@angular/animations/bundles/animations-browser.umd.js',
'@angular/platform-browser/animations': 'node_modules/@angular/platform-browser/bundles/platform-browser-animations.umd.js'

naveedahmed1 bu github sorununa çözüm sağladı .


2
Bu bilgi için teşekkürler ... Bunun Angular'ın yeni bir sürümü olmasını takdir ediyorum, ancak her konuyu çözmek için hiç bitmeyen bir mücadele ve bunun gibi çözüm yollarına rastlamak gibi. Cidden kullanıcı dostu olmayan şeyler.
Mike Gledhill

@MikeGledhill Yup, kesinlikle geçen yıl bir şeyleri yükseltmeyi kolaylaştırmak için tamamen emdiler. Berbat bir deneyim oldu.
Jackson Bray

Bugün öğrendiğim gibi, bu sorun yalnızca projeniz açısal hızlı başlangıç ​​tohumuna dayanıyorsa ortaya çıkar. yeni açısal
klibi

6

Tek yapmam gereken bunu kurmaktı

npm install @angular/animations@latest --save  

ve sonra içe aktar

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

senin içine app.module.tsdosyası.


-1; Bu çoğunlukla sadece daha önce birkaç ay gönderilmiş kabul cevabı kopyalar, aynı zamanda geçen adımını dışarı özlüyor BrowserAnimationsModuleiçin @NgModuledekoratör. O var da hemen hemen aynı vikvincer cevabı daha önce birkaç saat yayınlanmıştır.
Mark Amery

4
kimsenin cevabının bir kopyası değil. cevabım yaptığım şey. @NgModule decorator def doğru. sanal özdeş, adamım nihai yanıtları ekler. işaretlemenize gerek yoktu.
KofiYah

6

Benim için, @Component decorator: animations: [yourAnimation] 'daki bu ifadeyi kaçırdım

Bu ifadeyi ekledikten sonra hatalar gitti. (Açısal 6.x)


Aslında, açısal belgelerde bununla ilgili bir sayfa var . RTFM olmalı
Alexandre Germain

3

Bir animasyon modülü kurduktan sonra, uygulama klasörünüzün içinde bir animasyon dosyası oluşturursunuz.

router.animation.ts

import { animate, state, style, transition, trigger } from '@angular/animations';
    export function routerTransition() {
        return slideToTop();
    }

    export function slideToRight() {
        return trigger('routerTransition', [
            state('void', style({})),
            state('*', style({})),
            transition(':enter', [
                style({ transform: 'translateX(-100%)' }),
                animate('0.5s ease-in-out', style({ transform: 'translateX(0%)' }))
            ]),
            transition(':leave', [
                style({ transform: 'translateX(0%)' }),
                animate('0.5s ease-in-out', style({ transform: 'translateX(100%)' }))
            ])
        ]);
    }

    export function slideToLeft() {
        return trigger('routerTransition', [
            state('void', style({})),
            state('*', style({})),
            transition(':enter', [
                style({ transform: 'translateX(100%)' }),
                animate('0.5s ease-in-out', style({ transform: 'translateX(0%)' }))
            ]),
            transition(':leave', [
                style({ transform: 'translateX(0%)' }),
                animate('0.5s ease-in-out', style({ transform: 'translateX(-100%)' }))
            ])
        ]);
    }

    export function slideToBottom() {
        return trigger('routerTransition', [
            state('void', style({})),
            state('*', style({})),
            transition(':enter', [
                style({ transform: 'translateY(-100%)' }),
                animate('0.5s ease-in-out', style({ transform: 'translateY(0%)' }))
            ]),
            transition(':leave', [
                style({ transform: 'translateY(0%)' }),
                animate('0.5s ease-in-out', style({ transform: 'translateY(100%)' }))
            ])
        ]);
    }

    export function slideToTop() {
        return trigger('routerTransition', [
            state('void', style({})),
            state('*', style({})),
            transition(':enter', [
                style({ transform: 'translateY(100%)' }),
                animate('0.5s ease-in-out', style({ transform: 'translateY(0%)' }))
            ]),
            transition(':leave', [
                style({ transform: 'translateY(0%)' }),
                animate('0.5s ease-in-out', style({ transform: 'translateY(-100%)' }))
            ])
        ]);
    }

Ardından bu animasyon dosyasını herhangi bir bileşeninize aktarırsınız.

Component.ts dosyanızda

import { routerTransition } from '../../router.animations';

@Component({
  selector: 'app-test',
  templateUrl: './test.component.html',
  styleUrls: ['./test.component.scss'],
  animations: [routerTransition()]
})

App.module.ts dosyanıza animasyon aktarmayı unutmayın

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

2

Benim sorunum, @ angular / platform-browser'ımın 2.3.1 sürümünde olmasıydı.

npm install @angular/platform-browser@latest --save

4.4.6'ya yükseltme hile yaptı ve node_modules / @ angular / platform-browser altında / animations klasörünü ekledi


Ve bu aynı zamanda tüm Angular projemi
4.4.6'ya yükseltti

2

Animasyon belirli bir bileşene uygulanmalıdır.

ÖR: Başka bir bileşende ve başka bir bileşende sağlanan animasyon yönergesini kullanma

CompA --- @Component ({



animasyonlar: [animasyon]}) CompA --- @Component ({



animasyonlar: [animasyon] <=== bu, kullanılan bileşende sağlanmalıdır})


1

Benim için animasyon adını köşeli parantez içine koymamdı.

<div [@animation]></div>

Ancak dirseği çıkardıktan sonra her şey yolunda gitti (Angular 9.0.1'de):

<div @animation></div>

0

Aşağıdaki hatayı aldım:

Found the synthetic property @collapse. Please include either "BrowserAnimationsModule" or "NoopAnimationsModule" in your application.

Ploppy tarafından kabul edilen cevabı takip ettim ve sorunumu çözdü.

İşte adımlar:

1.
    import { trigger, state, style, transition, animate } from '@angular/animations';
    Or 
    import { BrowserAnimationsModule } from '@angular/platform-browser/animations';

2. Define the same in the import array in the root module.

Hatayı çözecektir. Mutlu kodlamalar !!


-3

Bunu dene

npm install @ angular / animations @ latest --save

{BrowserAnimationsModule} öğesini '@ angular / platform-browser / animations'dan içe aktarın;

bu benim için çalışıyor.


-1; Bu çoğunlukla sadece daha önce birkaç ay gönderilmiş kabul cevabı kopyalar, aynı zamanda geçen adımını dışarı özlüyor BrowserAnimationsModuleiçin @NgModuledekoratör.
Mark Amery

-3

Sadece ekleyin .. {BrowserAnimationsModule} '@ angular / platform-browser / animations'tan içe aktarın;

içe aktarmalar: [.. BrowserAnimationsModule

],

app.module.ts dosyasında.

yüklediğinizden emin olun .. npm install @ angular / animations @ latest --save


Burada zaten birçok başka yanıtta bulunan içeriği kopyalamak için -1.
Mark Amery

-3

AngularJS 4 için güncelleme:

Hata: (SystemJS) XHR hatası (404 Bulunamadı) http: // localhost: 3000/node_modules/@angular/platform-browser/bundles/platform-browser.umd.js/animations yüklenirken

Çözüm:

**cli:** (command/terminal)
npm install @angular/animations@latest --save

**systemjs.config.js** (edit file)
'@angular/animations': 'npm:@angular/animations/bundles/animations.umd.js',
'@angular/animations/browser': 'npm:@angular/animations/bundles/animations-browser.umd.js',
'@angular/platform-browser/animations': 'npm:@angular/platform-browser/bundles/platform-browser-animations.umd.js',

**app.module.ts** (edit file)
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
@NgModule({
  imports:      [ BrowserModule,BrowserAnimationsModule ],
...

2
-1; "angularJS 4" bir şey değildir ve burada tam olarak ne ifade etmeye çalıştığınız belirsizdir, çünkü sadece bir açıklama cümlesi olmadan bir hata mesajı ve okunması zor bir kod bloğu sağlarsınız.
Mark Amery

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

@NgModule({
  declarations: [   --   ],
  imports: [BrowserAnimationsModule],
  providers: [],
  bootstrap: []
})

2
Lütfen kodunuz için bir açıklama girin. Kendi başına kod göndermek OP dışında kimseye yardımcı olmaz ve neden işe yaradığını (veya yaramadığını) anlamıyorlar.
jhpratt

Bu kod parçacığı sorunu çözebilir ancak soruyu neden veya nasıl yanıtladığını açıklamaz. Gönderinizin kalitesini artırmaya gerçekten yardımcı olacağından, lütfen kodunuz için bir açıklama ekleyin. Gelecekte okuyucular için soruyu cevaplayacağınızı ve bu kişilerin kod önerinizin nedenlerini
bilmeyebileceğini unutmayın

-1; bu sadece kabul edilen cevaptaki içeriği kopyalar.
Mark Amery
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.