Valeur inattendue 'AnyComponent" déclarée par le module "AppModule'
Je suis en utilisant Angular2 et j'ai eu ce problème lorsque tryng à l'utilisation de deux classes dans le même fichier d'enregistrement de fichier.
Au moment de la compilation ne me donne pas d'erreur mais quand j'essaie d'exécuter la page de la console.le journal donne cette erreur:
Error: BaseException@http://www.my.app/panel-module/node_modules/@angular/compiler//bundles/compiler.umd.js:5116:27
CompileMetadataResolver</CompileMetadataResolver.prototype.getNgModuleMetadata/<@http://www.my.app/panel-module/node_modules/@angular/compiler//bundles/compiler.umd.js:13274:35
CompileMetadataResolver</CompileMetadataResolver.prototype.getNgModuleMetadata@http://www.my.app/panel-module/node_modules/@angular/compiler//bundles/compiler.umd.js:13261:21
RuntimeCompiler</RuntimeCompiler.prototype._compileComponents@http://www.my.app/panel-module/node_modules/@angular/compiler//bundles/compiler.umd.js:15845:28
RuntimeCompiler</RuntimeCompiler.prototype._compileModuleAndComponents@http://www.my.app/panel-module/node_modules/@angular/compiler//bundles/compiler.umd.js:15769:36
RuntimeCompiler</RuntimeCompiler.prototype.compileModuleAsync@http://www.my.app/panel-module/node_modules/@angular/compiler//bundles/compiler.umd.js:15746:20
PlatformRef_</PlatformRef_.prototype._bootstrapModuleWithZone@http://www.my.app/panel-module/node_modules/@angular/core//bundles/core.umd.js:9991:20
PlatformRef_</PlatformRef_.prototype.bootstrapModule@http://www.my.app/panel-module/node_modules/@angular/core//bundles/core.umd.js:9984:20
@http://www.my.app/panel-module/app/main.js:4:1
@http://www.my.app/panel-module/app/main.js:1:31
@http://www.my.app/panel-module/app/main.js:1:2
Zone</ZoneDelegate</ZoneDelegate.prototype.invoke@http://www.my.app/panel-module/node_modules/zone.js/dist/zone.js:332:20
Zone</Zone</Zone.prototype.run@http://www.my.app/panel-module/node_modules/zone.js/dist/zone.js:225:25
scheduleResolveOrReject/<@http://www.my.app/panel-module/node_modules/zone.js/dist/zone.js:586:53
Zone</ZoneDelegate</ZoneDelegate.prototype.invokeTask@http://www.my.app/panel-module/node_modules/zone.js/dist/zone.js:365:24
Zone</Zone</Zone.prototype.runTask@http://www.my.app/panel-module/node_modules/zone.js/dist/zone.js:265:29
drainMicroTaskQueue@http://www.my.app/panel-module/node_modules/zone.js/dist/zone.js:491:26
F/</g@http://www.my.app/panel-module/node_modules/core-js/client/shim.min.js:8:10016
F/<@http://www.my.app/panel-module/node_modules/core-js/client/shim.min.js:8:10138
a.exports/k@http://www.my.app/panel-module/node_modules/core-js/client/shim.min.js:8:14293
Evaluating http://www.my.app/panel-module/app/main.js
Error loading http://www.my.app/panel-module/app/main.js
Ci-dessous est mon composant tapuscrit de fichier.
//Moncomposant.ts
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: '/path/to/view',
})
export class MyObject {
id: number;
}
export class MyComponent {
obj: MyObject;
//unecessary code
}
Vous devez vous connecter pour publier un commentaire.
Vous devez changer l'ordre de vos classes, alors il n'y a pas de problème d'avoir plusieurs classes dans un même fichier.
Cause dans votre cas, le
decorator @Component
est maintenant utilisée pour votre classeMyObject
au lieu deMyComponent
!La
decorator @Component
doit être directement en face de votre définition de Composant!!decorator @Component
doit être en face de votre composant. sans cette décorateur, votre composant n'est pas un composant réel.. sinon, c'est une classe..Directive
mais a l'aide de laComponent
décorateur. Merci!Voici comment je l'ai corrigé:
Mettre le MyObject dans un fichier séparé et d'importation de lui.
//MyObject.ts
//Moncomposant.ts
myObject
avant votre composant, comme @mxii suggéré?Pour info, mon cas, j'ai juste eu le js logique où il pourrait'nd être
changé à
et l'erreur a été supprimée