3 votes

'full-calendar' n'est pas un élément connu :

Je suis un nouveau venu dans le monde d'Angular... Jusqu'à présent, j'ai voulu essayer le calendrier complet. J'ai déjà essayé de lancer le module et ça marche. Mais aujourd'hui j'ai créé un nouveau projet et j'ai suivi les étapes qui sont décrites dans la doc angular. De plus j'ai suivi toutes les étapes de la doc fullcalendar mais ça ne marche toujours pas.

Voici l'erreur que j'obtiens :

ERROR in src/app/app.component.html:1:1 - error NG8001: 'full-calendar' is not a known element:
1. If 'full-calendar' is an Angular component, then verify that it is part of this module.
2. If 'full-calendar' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.

1 <full-calendar defaultView="dayGridMonth" [plugins]="calendarPlugins"></full-calendar>

app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import {FullCalendarModule} from '@fullcalendar/angular';
import { AppComponent } from './app.component';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    FullCalendarModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

app.component.ts

import { Component } from '@angular/core';
import dayGridPlugin from '@fullcalendar/daygrid';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'nachweis-frontend';
  calendarPlugins = [dayGridPlugin];
}

app.component.html

<full-calendar [plugins] = "calendarPlugins"></full-calendar>

Voici également mon angular json. Je n'ai fait aucun changement ici :

{
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "version": 1,
  "newProjectRoot": "projects",
  "projects": {
    "nachweis-frontend": {
      "projectType": "application",
      "schematics": {},
      "root": "",
      "sourceRoot": "src",
      "prefix": "app",
      "architect": {
        "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            "outputPath": "dist/nachweis-frontend",
            "index": "src/index.html",
            "main": "src/main.ts",
            "polyfills": "src/polyfills.ts",
            "tsConfig": "tsconfig.app.json",
            "aot": true,
            "assets": [
              "src/favicon.ico",
              "src/assets"
            ],
            "styles": [
              "src/styles.css"
            ],
            "scripts": []
          },
          "configurations": {
            "production": {
              "fileReplacements": [
                {
                  "replace": "src/environments/environment.ts",
                  "with": "src/environments/environment.prod.ts"
                }
              ],
              "optimization": true,
              "outputHashing": "all",
              "sourceMap": false,
              "extractCss": true,
              "namedChunks": false,
              "extractLicenses": true,
              "vendorChunk": false,
              "buildOptimizer": true,
              "budgets": [
                {
                  "type": "initial",
                  "maximumWarning": "2mb",
                  "maximumError": "5mb"
                },
                {
                  "type": "anyComponentStyle",
                  "maximumWarning": "6kb",
                  "maximumError": "10kb"
                }
              ]
            }
          }
        },
        "serve": {
          "builder": "@angular-devkit/build-angular:dev-server",
          "options": {
            "browserTarget": "nachweis-frontend:build"
          },
          "configurations": {
            "production": {
              "browserTarget": "nachweis-frontend:build:production"
            }
          }
        },
        "extract-i18n": {
          "builder": "@angular-devkit/build-angular:extract-i18n",
          "options": {
            "browserTarget": "nachweis-frontend:build"
          }
        },
        "test": {
          "builder": "@angular-devkit/build-angular:karma",
          "options": {
            "main": "src/test.ts",
            "polyfills": "src/polyfills.ts",
            "tsConfig": "tsconfig.spec.json",
            "karmaConfig": "karma.conf.js",
            "assets": [
              "src/favicon.ico",
              "src/assets"
            ],
            "styles": [
              "src/styles.css"
            ],
            "scripts": []
          }
        },
        "lint": {
          "builder": "@angular-devkit/build-angular:tslint",
          "options": {
            "tsConfig": [
              "tsconfig.app.json",
              "tsconfig.spec.json",
              "e2e/tsconfig.json"
            ],
            "exclude": [
              "**/node_modules/**"
            ]
          }
        },
        "e2e": {
          "builder": "@angular-devkit/build-angular:protractor",
          "options": {
            "protractorConfig": "e2e/protractor.conf.js",
            "devServerTarget": "nachweis-frontend:serve"
          },
          "configurations": {
            "production": {
              "devServerTarget": "nachweis-frontend:serve:production"
            }
          }
        }
      }
    }
  },
  "defaultProject": "nachweis-frontend",
  "cli": {
    "analytics": false
  }
}

2voto

awarrier99 Points 3248

Après avoir regardé votre code GitHub, et je sais que c'était dans le fichier que vous avez posté dans votre message, mais pour une raison quelconque, cela manquait dans le fichier app.module.ts dans votre GitHub :

import { FullCalendarModule } from '@fullcalendar/angular';

et

imports: [
    BrowserModule,
    FullCalendarModule
],

Je l'ai testé sur ma machine, donc tant que vous avez tous les npm dans votre package.json installé, votre code devrait maintenant fonctionner

0voto

federico scamuzzi Points 2599

Peut-être essayer avec ceux-ci (comme le dit le doc à ) : https://fullcalendar.io/docs/angular )

npm install --save @fullcalendar/angular @fullcalendar/core @fullcalendar/daygrid

2-) après cela, importez le module dans votre fichier app.module.ts le FullCalendarModule :

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FullCalendarModule } from '@fullcalendar/angular'; // for FullCalendar!
import { AppComponent } from './app.component';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    FullCalendarModule // for FullCalendar!
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

3-) Maintenant que vous avez le calendrier complet dans votre application, essayez de le mettre dans votre composant dans :

a) html

<full-calendar defaultView="dayGridMonth" [plugins]="calendarPlugins"></full-calendar>

b) en ts

import { Component } from '@angular/core';
import dayGridPlugin from '@fullcalendar/daygrid'; //< import. it

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent {

  calendarPlugins = [dayGridPlugin]; // important!

}

4-) Attention, comme le dit le doc, à importer les css. MANUALLY dans votre fichier css (ou scss) :

 @import '~@fullcalendar/core/main.css';
@import '~@fullcalendar/daygrid/main.css';

J'espère que cela vous aidera !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X