ctorParameters.la carte n'est pas une fonction dans angular2-mdl
Je suis en train d'utiliser angular2-mdl angulaire-cli. J'ai importé MdlModule
dans l'app.le module.ts.
Lorsque j'essaie d'utiliser <mdl-textfield type="text" label="Text..." floating-label></mdl-textfield>
, il a fait une erreur:
ctorParameters.la carte n'est pas une fonction dans angular2-mdl
Je n'ai aucune idée de ce que je dois faire.
Voici mon angulaires-cli.json.
"dependencies": {
"@angular/common": "~2.0.0",
"@angular/compiler": "~2.0.0",
"@angular/core": "~2.0.0",
"@angular/forms": "~2.0.0",
"@angular/http": "~2.0.0",
"@angular/material": "^2.0.0-alpha.9-3",
"@angular/platform-browser": "~2.0.0",
"@angular/platform-browser-dynamic": "~2.0.0",
"@angular/router": "~3.0.0",
"@types/moment-timezone": "^0.2.33",
"angular-cli": "^1.0.0-beta.17",
"angular2-jwt": "^0.1.25",
"angular2-mdl": "^2.9.0",
"bootstrap": "^3.3.7",
"bourbon": "^4.2.7",
"core-js": "^2.4.1",
"font-awesome": "^4.7.0",
"hammerjs": "^2.0.8",
"moment": "^2.17.1",
"moment-timezone": "^0.5.10",
"node-sass": "^3.13.0",
"primeng": "^1.1.0",
"rxjs": "5.0.0-beta.12",
"ts-helpers": "^1.1.1",
"zone.js": "^0.6.23"
},
"devDependencies": {
"@types/jasmine": "^2.2.30",
"@types/moment": "^2.13.0",
"@types/moment-timezone": "^0.2.33",
"@types/node": "^6.0.42",
"angular-cli": "1.0.0-beta.17",
"bootstrap-sass": "^3.3.7",
"codelyzer": "~0.0.26",
"jasmine-core": "2.4.1",
"jasmine-spec-reporter": "2.5.0",
"karma": "1.2.0",
"karma-chrome-launcher": "^2.0.0",
"karma-cli": "^1.0.1",
"karma-jasmine": "^1.0.2",
"karma-remap-istanbul": "^0.2.1",
"protractor": "4.0.9",
"ts-node": "1.2.1",
"tslint": "3.13.0",
"typescript": "2.0.2"
}
OriginalL'auteur Mingyu Jeon | 2016-12-22
Vous devez vous connecter pour publier un commentaire.
Ressemble à cette question nécessite quelques éclaircissements:
Pourquoi voyons-nous ce message d'erreur?
Si une bibliothèque de composants pour angular2 veut être compatible avec AOT il doit être compilé avec ngc (@angulaire/compilateur-cli). Cela va générer *.les métadonnées.des fichiers json pour chaque composant. Aussi cela génère des fichiers js pour chaque composant qui comprend des informations sur les paramètres du constructeur. Si le paquet a été compilé avec une version de @angulaire/compilateur-cli < 2.3.0 ce serait (par exemple):
Si le paquet est compilé avec une version plus récente, ce sera:
Comme vous pouvez le voir la version la plus récente est une fonction et non plus un tableau. Donc l'erreur
de sens. Parce que la carte est un membre de tableau mais pas de fonction.
Comment résoudre ce Problème?:
Vous pouvez mettre à jour votre angulaire versions (ou packages d'essayer de compiler votre angular2 code) pour le nouveau compilateur format de sortie. E. g. au moins @angulaire/*@2.3.1. (Si vous utilisez angulaires-cli vous devez mettre à niveau votre projet [email protected])
Vous pouvez verrouiller le paquet que vous utilisez pour une version qui correspond à l'ancien compilateur format de sortie. Pour angular2-mdl c'est la version 2.7.0. Vous pouvez trouver cette information ici: https://github.com/mseemann/angular2-mdl#remarks.
Est-il possible d'utiliser un package qui a été compilé avec une ancienne angulaires-compilateur-cli avec une nouvelle angulaires-le compilateur version cli? (par exemple, vous êtes au angulaire 2.4.1 et que vous voulez utiliser [email protected] Oui! Cette direction est rétro-compatible. Voir https://github.com/angular/angular/blob/master/modules/%40angular/core/src/reflection/reflection_capabilities.ts#L80
J'ai constaté que ce problème peut être provoqué par un certain nombre de paquets attend Angulaire différente de ce qui est réellement installé. Pour moi, la course
ng build
a montré que le problème spécifique:npm WARN @angular/[email protected] requires a peer of @angular/[email protected] but none was installed.
En définissant à la fois les paquets à 2.0.1 dans mon colis.json fixe:"dependencies": { "@angular/core": "2.0.1", "@angular/platform-server": "2.0.1", }
OriginalL'auteur michael
J'ai eu le même problème (avec un autre plugin) et résolu par angulaire de la mise à niveau vers la dernière version (2.4.1).
EDIT: Plein de paquets.json
Vérifier votre Tapuscrit version aussi. J'ai dû cesser de l'utiliser Angulaires-cli en raison de la continuité de problèmes lors de la compilation. Je suis passé à webpack.
oui, Angulaire 2.4.1. Si votre problème persiste, je vais copier l'intégralité des paquets.json demain.
Merci!!!! Je vais attendre pour elle.
édité! Laissez-moi savoir comment ça se passe
Il fonctionne! Merci beaucoup! Je pense que la raison en était à la version 🙂
OriginalL'auteur Martin
J'ai été capable de comprendre la cause de ce problème en regardant le rapport d'erreur de
ng build
:Cela m'a aidé à réaliser que l'un de mes paquets attendus Angulaire pour être à la v2.4.4, mais je suis en utilisant v2.0.1. J'ai mis à jour mon colis.json à la fois des paquets mis à ma version comme ceci:
Votre question ne pourrait pas être avec @angulaire de la plate-forme serveur, mais j'espère que cela aide le débogage
OriginalL'auteur AJ Zane
J'ai eu le même problème. il était à l'origine parce que j'ai été en utilisant
"ng2-bootstrap": "^1.3.1",
"@angulaire/commune": "2.0.1",
"@angulaire/compilateur": "2.0.1",
"@angulaire/core": "2.0.1",
"@angulaire de la plate-forme du navigateur": "2.0.1",
Puis j'ai mis à jour angulaire dépendances à
"@angulaire/commune": "2.2.3",
"@angulaire/compilateur": "2.2.3",
"@angulaire/core": "2.2.3",
"@angulaire de la plate-forme du navigateur": "2.2.3",
il a bien fonctionné.
OriginalL'auteur Shashikant Pandit
après la mise à niveau vers angulaire 2.4.6 il fonctionne bien
OriginalL'auteur Amr Ibrahim
J'ai essayé de re-construire un relativement "ancien" Angular2 application (version 2.0.0) et ng-bootstrap. Après le succès de la construction du projet (c'est à dire, pas d'erreur) j'obtiens cette erreur sur la page d'accueil.
Après avoir essayé tout court d'étrangler moi-même, j'ai désinstallé tous les modules npm et essayé de faire un
npm install
et a remarqué que le ng-bootsrap installé une version qui n'est pas compatible avec Angulare 2.0.0 (le paquet.json réglage pourng-bootstrap
a été mis à~1.1.3
). Qui a installé la dernière1.1.7
qui exigeait Angulaire2.4.x
.Essayer de mettre à niveau à
2.4.x
s'est avéré être un énorme effort j'ai donc mis le ng-bootstrap pour 1.1.4 la place.TL;DR: le matin à l'aide angulaire 2.0.0 et ng-bootstrap. ne souhaitez pas passer en 2.4.x j'ai donc dur codede la ng-bootstrap version 1.1.4 et le problème a disparu.
OriginalL'auteur Dexter Legaspi