【发布时间】:2023-03-18 00:25:01
【问题描述】:
我使用 angular-seed 升级了 Angular 4 项目,现在出现错误
找到合成属性@panelState。请在您的应用程序中包含“BrowserAnimationsModule”或“NoopAnimationsModule”。
我该如何解决这个问题?错误消息到底告诉我什么?
【问题讨论】:
标签: angular typescript angular-animations
我使用 angular-seed 升级了 Angular 4 项目,现在出现错误
找到合成属性@panelState。请在您的应用程序中包含“BrowserAnimationsModule”或“NoopAnimationsModule”。
我该如何解决这个问题?错误消息到底告诉我什么?
【问题讨论】:
标签: angular typescript angular-animations
确保已安装 @angular/animations 软件包(例如,通过运行 npm install @angular/animations)。然后,在你的 app.module.ts
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
@NgModule({
...,
imports: [
...,
BrowserAnimationsModule
],
...
})
【讨论】:
npm list --depth=0 列出项目中已安装的包
├── @angular/platform-browser@4.3.5 ├── @angular/platform-browser-dynamic@4.3.5
我在尝试使用BrowserAnimationsModule 时遇到了类似的问题。以下步骤解决了我的问题:
npm cache clean 清除包缓存
如果您遇到类似的 404 错误
http://.../node_modules/@angular/platform-browser/bundles/platform-browser.umd.js/animations
在您的 system.config.js 中将以下条目添加到 map:
'@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 提供了解决方案 on this github issue。
【讨论】:
试试这个
npm install @angular/animations@latest --save
从 '@angular/platform-browser/animations' 导入 { BrowserAnimationsModule };
这对我有用。
【讨论】:
BrowserAnimationsModule 传递给@NgModule 装饰器的步骤。
我所要做的就是安装这个
npm install @angular/animations@latest --save
然后导入
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
进入您的app.module.ts 文件。
【讨论】:
BrowserAnimationsModule 传递给@NgModule 装饰器的步骤。它也与几个小时前发布的vikvincer's answer 几乎相同。
只需添加 .. 从'@angular/platform-browser/animations'导入{ BrowserAnimationsModule };
进口:[ .. 浏览器动画模块
],
在 app.module.ts 文件中。
确保您已安装 .. npm install @angular/animations@latest --save
【讨论】:
angularJS 4 更新:
错误:(SystemJS) XHR 错误 (404 Not Found) loading http://localhost:3000/node_modules/@angular/platform-browser/bundles/platform-browser.umd.js/animations
解决方案:
**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 ],
...
【讨论】:
--
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
---
@NgModule({
declarations: [ -- ],
imports: [BrowserAnimationsModule],
providers: [],
bootstrap: []
})
【讨论】:
我的问题是我的 @angular/platform-browser 是 2.3.1 版
npm install @angular/platform-browser@latest --save
升级到 4.4.6 成功了,并在 node_modules/@angular/platform-browser 下添加了 /animations 文件夹
【讨论】:
对我来说,我错过了@Component 装饰器中的这句话: 动画:[你的动画]
添加此语句后,错误就消失了。 (Angular 6.x)
【讨论】:
安装动画模块后,您将在应用文件夹中创建一个动画文件。
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%)' }))
])
]);
}
然后你将这个动画文件导入到你的任何组件中。
在您的 component.ts 文件中
import { routerTransition } from '../../router.animations';
@Component({
selector: 'app-test',
templateUrl: './test.component.html',
styleUrls: ['./test.component.scss'],
animations: [routerTransition()]
})
别忘了在你的 app.module.ts 中导入动画
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
【讨论】:
此错误消息通常具有误导性。
您可能忘记导入BrowserAnimationsModule。但这不是我的问题。我在根AppModule 中导入BrowserAnimationsModule,每个人都应该这样做。
问题与模块完全无关。我在组件模板中为*ngIf 设置动画,但我忘记在 @Component.animations 组件类中提及它。
@Component({
selector: '...',
templateUrl: './...',
animations: [myNgIfAnimation] // <-- Don't forget!
})
如果您在模板中使用动画,您还必须在组件的 animations 元数据中列出该动画...每次。
【讨论】:
我收到以下错误:
Found the synthetic property @collapse. Please include either "BrowserAnimationsModule" or "NoopAnimationsModule" in your application.
我遵循 Ploppy 接受的答案,它解决了我的问题。
步骤如下:
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.
它将解决错误。编码愉快!
【讨论】:
动画应该应用在特定的组件上。
EX : 在其他组件中使用动画指令并在另一个组件中提供。
CompA --- @Component ({
动画:[动画] }) CompA --- @组件 ({
animations : [animation]
【讨论】:
对我来说是因为我将动画名称放在方括号内。
<div [@animation]></div>
但是在我移除支架后一切正常(在 Angular 9.0.1 中):
<div @animation></div>
【讨论】: