'Đã tìm thấy tài sản tổng hợp @panelState. Vui lòng bao gồm cả Browser BrowserAnimationsModule, hoặc No NoAnAnationsationsModule, trong ứng dụng của bạn. '


148

Tôi đã nâng cấp một dự án Angular 4 bằng angular-seed và bây giờ gặp lỗi

Tìm thấy tài sản tổng hợp @panelState. Vui lòng bao gồm "BrowserAnimationsModule" hoặc "NoopAnimationsModule" trong ứng dụng của bạn.

Ảnh chụp màn hình lỗi

Làm thế nào tôi có thể sửa lỗi này? Chính xác thì thông báo lỗi cho tôi biết là gì?


Câu trả lời:


227

Đảm bảo @angular/animationsgói được cài đặt (ví dụ: bằng cách chạy npm install @angular/animations). Sau đó, trong app.module.ts của bạn

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

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

Làm cách nào để kiểm tra xem nó có được cài đặt trên PC hay không.?
Mr toàn thế giới

2
npm list --depth=0liệt kê các gói đã cài đặt trong dự án của bạn
Ploppy

1
Kết quả mong đợi là gì nếu đã được cài đặt.? tôi chỉ có thể thấy 2 điều này:├── @angular/platform-browser@4.3.5 ├── @angular/platform-browser-dynamic@4.3.5
Mr world wide

7
Tôi đã cài đặt tất cả các gói cho hoạt hình và cũng đã nhập "BrowserAnimationsModule" trong AppModule. Nhưng nó vẫn nhận được lỗi.
crossRT

1
@crossRTDid bạn cũng nhập hoạt hình của mình nếu bạn đã tạo nó trong một tệp khác?
Ploppy

165

Thông báo lỗi này thường gây hiểu nhầm .

Bạn có thể đã quên nhập BrowserAnimationsModule. Nhưng đó không phải là vấn đề của tôi . Tôi đã nhập BrowserAnimationsModuletrong thư mục gốc AppModule, như mọi người nên làm.

Vấn đề là một cái gì đó hoàn toàn không liên quan đến các mô-đun. Tôi đã tạo hiệu ứng *ngIftrong một mẫu thành phần nhưng tôi đã quên đề cập đến nó trong @Component.animations lớp thành phần .

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

Nếu bạn sử dụng hoạt hình trong một mẫu, bạn cũng phải liệt kê hoạt hình đó trong animationssiêu dữ liệu của thành phần ... mỗi lần .


Bạn phải sử dụng phiên bản cũ của Angular, lỗi khác:Error: The provided animation trigger "myAnimation" has not been registered!
Ploppy

2
Chắc chắn rồi. Nhưng trong khi đó, đối với những người bị mắc kẹt như tôi và chỉ tìm thấy lời khuyên ở trên, câu trả lời của tôi cho bạn thêm một điều để thử.
Phường

1
Tôi cũng đã nhận được lỗi sai đó (sử dụng góc 7.1)
Andi-lo

1
Tôi đang sử dụng Angular 8.0.0 và nhận được ngoại lệ đó nhưng xác định hình ảnh động trong thành phần như bạn đã nói đã sửa mọi thứ, cảm ơn.
Alireza

1
Tương tự với @Alireza, tôi cũng gặp lỗi tương tự trên Angular 8.0. Bao gồm các hình ảnh động trong các thành phần hoạt động.
trungk18

19

Tôi gặp vấn đề tương tự, khi tôi cố gắng sử dụng BrowserAnimationsModule. Các bước sau đã giải quyết vấn đề của tôi:

  1. Xóa thư mục node_modules
  2. Xóa bộ nhớ cache gói của bạn bằng cách sử dụng npm cache clean
  3. Chạy một trong hai lệnh được liệt kê ở đây để cập nhật các gói hiện có của bạn

Nếu bạn gặp lỗi 404 như

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

thêm các mục sau vào maptrong system.config.js của bạn :

'@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 đã cung cấp giải pháp cho vấn đề github này .


2
Cảm ơn về thông tin này ... Tôi đánh giá cao đây là một bản phát hành mới của Angular, nhưng cảm giác như một cuộc đấu tranh không hồi kết để giải quyết vấn đề sau vấn đề, và tình cờ gặp phải những vấn đề như thế này. Đó là thứ không thân thiện với người dùng.
Mike Gledhill

@MikeGledhill Yup, họ chắc chắn đã hoàn toàn bị hút vào việc làm cho mọi thứ dễ dàng nâng cấp trong năm qua. Đó là một kinh nghiệm khổ sở.
Jackson Bray

như tôi đã tìm ra ngày hôm nay, vấn đề này chỉ xảy ra nếu dự án của bạn dựa trên hạt giống khởi động nhanh góc cạnh. cli góc mới không sử dụng loại tệp cấu hình này
wodzu

6

Tất cả tôi phải làm là cài đặt cái này

npm install @angular/animations@latest --save  

và sau đó nhập khẩu

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

vào app.module.tstập tin của bạn .


-1; điều này chủ yếu chỉ là trùng lặp câu trả lời được chấp nhận đã được đăng một vài tháng trước đó, nhưng cũng bỏ lỡ bước chuyển BrowserAnimationsModuleđến @NgModuletrang trí. Nó cũng gần giống với câu trả lời của vikvincer được đăng vài giờ trước đó.
Đánh dấu Amery

4
nó không phải là một bản sao câu trả lời của bất cứ ai. Câu trả lời của tôi là những gì tôi đã làm. @NgModule trang trí là def chính xác. ảo giống nhau thêm vào kết luận câu trả lời ma chàng. bạn không cần gắn cờ.
SamYah

6

Đối với tôi, tôi đã bỏ lỡ tuyên bố này trong trang trí @Component: hình động: [yourAnimation]

Khi tôi thêm tuyên bố này, lỗi đã biến mất. (Góc 6.x)


Trên thực tế, có một trang về điều này trong tài liệu góc . Tôi nên có RTFM
Alexandre Germain

2

Vấn đề của tôi là trình duyệt @ angular / platform-platform của tôi đã có trên phiên bản 2.3.1

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

Nâng cấp lên 4.4.6 đã thực hiện thủ thuật và thêm thư mục / hình động dưới nút_modules / @ angular / platform-browser


Và điều đó cũng đã nâng cấp toàn bộ dự án Angular của tôi lên 4.4.6
Tanel Jõeäär

2

Sau khi cài đặt một mô-đun hoạt hình, sau đó bạn tạo một tệp hoạt hình trong thư mục ứng dụng của bạn.

bộ định tuyến.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%)' }))
            ])
        ]);
    }

Sau đó, bạn nhập tệp hoạt hình này vào bất kỳ thành phần nào của bạn.

Trong tập tin thành phần của bạn

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

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

Đừng quên nhập hình ảnh động trong app.module.ts của bạn

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

2

Các hình ảnh động nên được áp dụng trên các thành phần cụ thể.

EX: Sử dụng chỉ thị hoạt hình trong thành phần khác và được cung cấp trong phần khác.

CompA --- @Component ({



hình động: [hoạt hình]}) CompA --- @Component ({



hình ảnh động: [hình ảnh động] <=== điều này nên được cung cấp trong thành phần được sử dụng})


1

Đối với tôi là vì tôi đặt tên hoạt hình trong dấu ngoặc vuông.

<div [@animation]></div>

Nhưng sau khi tôi loại bỏ khung, tất cả đều hoạt động tốt (Trong Angular 9.0.1):

<div @animation></div>

0

Tôi đã nhận được lỗi dưới đây:

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

Tôi làm theo câu trả lời được chấp nhận bởi Ploppy và nó đã giải quyết vấn đề của tôi.

Dưới đây là các bước:

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.

Nó sẽ giải quyết lỗi. Chúc mừng mã hóa !!


-3

Thử cái này

npm cài đặt @ angular / animations @ mới nhất --save

nhập {BrowserAnimationsModule} từ '@ angular / platform-browser / animations';

cái này hiệu quả với tôi


-1; điều này chủ yếu chỉ là trùng lặp câu trả lời được chấp nhận đã được đăng một vài tháng trước đó, nhưng cũng bỏ lỡ bước chuyển BrowserAnimationsModuleđến @NgModuletrang trí.
Đánh dấu Amery

-3

Chỉ cần thêm .. nhập {BrowserAnimationsModule} từ '@ angular / platform-browser / animations';

nhập khẩu: [.. BrowserAnimationsModule

],

trong tệp app.module.ts.

đảm bảo bạn đã cài đặt .. npm install @ angular / animations @ mới nhất --save


-1 để sao chép nội dung đã có trong vô số câu trả lời khác ở đây.
Đánh dấu Amery

-3

Cập nhật cho angularJS 4:

Lỗi: (SystemJS) lỗi XHR (404 Not Found) tải http: // localhost: 3000/node_modules/@angular/platform-browser/bundles/platform-browser.umd.js/animations

Giải pháp:

**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" không phải là một điều, và không rõ chính xác những gì bạn đang cố gắng thể hiện ở đây vì bạn chỉ cung cấp một thông báo lỗi và một khối mã khó đọc mà không cần nhiều câu giải thích.
Đánh dấu Amery

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

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

2
Vui lòng cung cấp một lời giải thích cho mã của bạn. Tự mình đăng mã không giúp được ai ngoại trừ OP và họ không hiểu tại sao nó hoạt động (hoặc không).
jhpratt

Mặc dù đoạn mã này có thể giải quyết vấn đề, nhưng nó không giải thích tại sao hoặc làm thế nào để trả lời câu hỏi. Vui lòng bao gồm một lời giải thích cho mã của bạn, vì điều đó thực sự giúp cải thiện chất lượng bài đăng của bạn. Hãy nhớ rằng bạn sẽ trả lời câu hỏi cho độc giả trong tương lai và những người đó có thể không biết lý do cho đề xuất mã của bạn
Balagurunathan Marimuthu

-1; Điều này chỉ trùng lặp nội dung từ câu trả lời được chấp nhận.
Đánh dấu Amery
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.