Angular UI-Calendar TypeError: calendar.fullCalendar не является функцией

Я пытался использовать Angular: ui-calendar с метеором, но получаю эту ошибку.

TypeError: calendar.fullCalendar is not a function
    at Scope.scope.initCalendar (calendar.js:265)
    at Object.fn (calendar.js:337)
    at Scope.$digest (angular.js:15896)
    at Scope.$apply (angular.js:16160)
    at bootstrapApply (angular.js:1679)
    at Object.invoke (angular.js:4523)
    at doBootstrap (angular.js:1677)
    at Object.bootstrap (angular.js:1697)
    at HTMLDocument.onReady (app.js:47)
    at fire (jquery.js:3143)

В пакетах Meteor у меня есть:

angular 1.2.3 angularui: пользовательский календарь

также попытался использовать пакет, вставленный напрямую, без использования метеорита. но используя файл calendar.js (который отличается)

Оба получают одну и ту же ошибку.

Пробовал это: https://github.com/angular-ui/ui-calendar/issues/267

       scope.initCalendar = function () {
                if (!calendar) {
                    calendar = $(elm);
                }
                calendar.fullCalendar(options);
                if (attrs.calendar) {
                    uiCalendarConfig.calendars[attrs.calendar] = calendar;
                }
         };

Но похоже, что это исправление не работает с метеором и угловым метеором.

Есть идеи, как решить эту проблему?


person Boney Collins    schedule 29.01.2016    source источник
comment
вы загружали библиотеку jQuery до angular.js?   -  person PrinceG    schedule 29.01.2016
comment
Да, jquery предшествует angular.   -  person Boney Collins    schedule 29.01.2016


Ответы (3)


Вам следует проверить методы initCalendar и destroyCalendar в angular-ui-calendar/src/calendar.js. Если они создают элемент, используя:

angular.element(elm).html('');

Затем замените его на:

$(elm).html('');
person user2313833    schedule 04.12.2017

проблема в том, что angular не находит jquery в окне. $

если вы используете модули es6:

import jquery from "jquery";

export default (window.$ = window.jQuery = jquery);

в противном случае вы должны добавить js-скрипт в свой index.html и перед кодом вашего приложения:

window.$ = window.jQuery = jquery
person Toni D'Angelo    schedule 01.03.2019

Думаю, возможно, вы неправильно настроили контроллер для своей страницы?

У меня была такая же проблема, но при использовании ui-router у меня был неправильно указан контроллер, и он не был подключен. После исправления этого появился календарь, и эта ошибка исчезла.

person bwobbones    schedule 28.08.2016