fullcalendar & Angular 5

(Новое Новое Редактирование)

Рустам помог Аршоу построить потрясающий модуль Angular! Проверьте это. Работает с Angular 7.

https://fullcalendar.io/docs/angular

(Новое редактирование)

Я реализовал Angluar 5 с FullCalendar @Alpha Release.

Ранее у меня были проблемы с реализацией FullCalendar для Angular ниже. Я думал, что вы, ребята, возможно, захотите также обновить.


Как правильно реализовать fullcalendar с Angular 5 без ошибок? Я пытаюсь внедрить его в конкретный компонент. Я установил следующие пакеты

  • JQuery
  • момент
  • fullcalendar
  • fullcalendar-планировщик

К вашему сведению, нижеприведенный пост является самым близким к тому, что я нашел, чтобы найти решение. Я следовал инструкции, но все равно получаю ошибку "JQueryPromise". Пожалуйста, сообщите и спасибо заранее!

Угловая функция обратного вызова из события jquery

package.json

 "fullcalendar": "^3.8.0",
 "fullcalendar-scheduler": "^1.9.1",
 "jquery": "^3.2.1",
 "moment": "^2.20.1",

.angular-cli.json

 "styles": [
    "styles.css",
    "../node_modules/fullcalendar/dist/fullcalendar.min.css",
    "../node_modules/fullcalendar-scheduler/dist/scheduler.min.css"
  ],
  "scripts": [
    "../node_modules/jquery/dist/jquery.min.js",
    "../node_modules/moment/min/moment.min.js",
    "../node_modules/fullcalendar/dist/fullcalendar.min.js",
    "../node_modules/fullcalendar-scheduler/dist/scheduler.min.js"
  ],

main.ts

import * as jQuery from "jquery";
(window as any).$ = (window as any).jQuery = jQuery;

app.component.html

<div id='calendar'></div>

app.component.ts

import { Component } from '@angular/core';
import 'fullcalendar';
import 'fullcalendar-scheduler';
declare let $: any;

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  ngOnInit() {
    $('#calendar').fullCalendar({});
  }
}

Я неукоснительно следовал всем шагам, но все еще получаю ошибку. По иронии судьбы, он может загружаться, когда я обновляю страницу, и я могу обойти эту ошибку, но она все еще сохраняется, особенно когда я впервые запускаю 'ng serve'

ERROR in node_modules/fullcalendar/dist/fullcalendar.d.ts(695,36): error TS2304: Cannot find name 'JQueryPromise'.
node_modules/fullcalendar/dist/fullcalendar.d.ts(696,29): error TS2304: Cannot find name 'JQueryPromise'.
node_modules/fullcalendar/dist/fullcalendar.d.ts(697,20): error TS2304: Cannot find name 'JQueryPromise'.
node_modules/fullcalendar/dist/fullcalendar.d.ts(759,22): error TS2304: Cannot find name 'JQueryPromise'.
node_modules/fullcalendar/dist/fullcalendar.d.ts(775,50): error TS2304: Cannot find name 'JQueryPromise'.
node_modules/fullcalendar/dist/fullcalendar.d.ts(988,23): error TS2304: Cannot find name 'JQueryEventObject'.
node_modules/fullcalendar/dist/fullcalendar.d.ts(1401,70): error TS2304: Cannot find name 'JQueryAjaxSettings'.
node_modules/fullcalendar/dist/fullcalendar.d.ts(1603,50): error TS2304: Cannot find name 'JQueryPromise'.
node_modules/fullcalendar/dist/fullcalendar.d.ts(1623,50): error TS2304: Cannot find name 'JQueryPromise'.
node_modules/fullcalendar/dist/fullcalendar.d.ts(2588,50): error TS2304: Cannot find name 'JQueryPromise'.

Новая разработка по этой кроличьей норе

Просто попытался создать новый компонент "schedule.component" и переместить все туда, но теперь я получаю следующие ошибки

Refused to load the font 'data:font/woff;base64,d09GRgABAAAAAGVUABEAAAAAxuQAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABgAAAAC4AAAA0ArgC7UdQT1MAAAGwAAAQ6AAALgxKsqRTR1NVQgAAEpgAAAH3AAAELqI5y+RPUy8yAAAUkAAAAE8AAABgaGyBu2NtYXAAABTgAAABlAAAAkQkRATXY3Z0IAAAFnQAAABeAAAAugDsQf1mcGdtAAAW1AAABZcAAAvNb3/BHGdhc3AAABxsAAAACAAAAAgAAAAQZ2x5ZgAAHHQAAEApAAB3CtbiupxoZWFkAABcoAAAADYAAAA2BkubWWhoZWEAAFzYAAAAIAAAACQHFARfaG10eAAAXPgAAAI6AAAEEk4TN4Nsb2NhAABfNAAAAhIAAAISiLhpam1heHAAAGFIAAAAIAAAACACigzgbmFtZQAAYWgAAACUAAABHhQGLdJwb3N0AABh/AAAAq4AAASRk5y6n3ByZ...QxUajCCFt4p9HP4fzdSWs2XhWl5HvJazrIrFUyB0l5dpqcW10lV2wukjMLuAvyMHNiYpgPsrCVXZDKrkpll6UWkh7kABVAFVCDe7UFmxagDegA+hLHRPbqtMo7ZHCpKdT6tPGXybzo0+RXBLoPZt1tELcXxCmAAyZwYTJvdDFZKnDER44X2451rDqCyunIsRWvLSx6wnWqwPj/uX5/KuEy6DL0z6A/Fn79VihxMFJsrlAFy4DpZOcvNlMeNp+BRDLj0r+XFdRxdSNSNxiI/AL3ojKdAAB4AWPw3sFwIihiIyNjX+QGxp0cDBwMyQUbGdictkUwWDAwsDJogTgOPN4c9iz6bMos4iysHFChUDZXJnMWTSZZJrAQt9M+YQYBBh4GTgY2kEZOoJiA0z4GBxiEiDEzuGxUYewIjNjg0BGxkTnFZaMaiLeLo4GBkcWhIzkkAqQkEggceHw5HFkM2VRZJFlYebR2MP5v3cDSu5GJwWUDW9xG1hQXAFAmKZU=' because it violates the following Content Security Policy directive: "default-src 'self'". Note that 'font-src' was not explicitly set, so 'default-src' is used as a fallback.

Ответ 1

Проблема, с которой вы столкнулись, теперь исправлена благодаря проблеме GitHub, которую вы подняли.

Я уверен, что запуск npm install --save-dev @types/jquery будет корректно исправлять эту проблему, поскольку я столкнулся с той же проблемой, и выполнение этого делало трюк (после того, как я нашел этот пост и ссылку на проблему GitHub).

процитировать исправление на GitHub: "теперь это учитывается в документах: https://fullcalendar.io/docs/typescript/ "

Ответ 2

Так что в файлах *.d.ts в папке node_modules есть что-то не так. Я открыл проблему в проекте GitHub

https://github.com/fullcalendar/fullcalendar/issues/3991

Я пошел на замену соответствующего типа проблем с помощью "any":

node_modules/fullcalendar/расстояние /fullcalendar.d.ts
node_modules/fullcalendar-планировщик/расстояние /scheduler.d.ts

'JQueryPromise'
'JQueryEventObject'
'JQueryAjaxSettings'

По иронии судьбы, после того, как я установил, что у меня больше не возникает проблема "Отказаться от загрузки шрифта". Не могу прокомментировать это. Все, что я знаю, это то, что он работает так, как должен.

Счастливых праздников!

Ответ 3

В вашем проекте не содержатся пиктограммы jquery. Попытайтесь добавить их с помощью этой команды

npm install --save-dev @types/[email protected]

Эта проблема была поднята в полнофункциональном трекер-расписании (https://github.com/fullcalendar/fullcalendar/issues/3991)

Ответ 4

Привет, я знаю, что это старый вопрос, но эта npm install --save-dev @types/jquery не работает для меня. Более быстрое решение было:

  • Откройте Управление пакетами NuGet для решения (визуальная опция диспетчера пакетов) в Tools>NuGet Package Manager> Manage NuGet Packages for Solution
  • Напишите в поле поиска: jquery.type
  • Найти пакет jquery.TypeScript.DefiniteTyped
  • Установить внутри вашего веб-проекта
  • решаемая

Я надеюсь, что это, возможно, помогло тем, кто был в той же ситуации, что и я.