Boney Collins
Boney Collins

Reputation: 21

Angular UI-Calendar TypeError: calendar.fullCalendar is not a function

I been trying to use Angular: ui-calendar with meteor, but get this error.

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)

In meteor packages i habe:

angular 1.2.3 angularui:ui-calendar

also tried to use the package inserted directly not using meteor add. but using the calendar.js file (which is different)

Both get the same error.

Tried this: 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;
                }
         };

But is seems this fix doesnt work with meteor and angular-meteor.

Any ideas on how to fix this issue?

Upvotes: 2

Views: 3350

Answers (3)

Toni D'Angelo
Toni D'Angelo

Reputation: 69

the problem is that angular doesn't find jquery in window.$

if you are using es6 modules:

import jquery from "jquery";

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

otherwise you should add js script in you index.html and before your app code:

window.$ = window.jQuery = jquery

Upvotes: 1

user2313833
user2313833

Reputation: 169

You should check the initCalendar and destroyCalendar methods in angular-ui-calendar/src/calendar.js. If they're creating the element by using:

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

Then you should replace it by:

$(elm).html('');

Upvotes: 2

bwobbones
bwobbones

Reputation: 2578

I think you may not have correctly configured the controller for your page?

I had this same issue but using ui-router, I had the controller specified incorrectly and it wasn't being wired up. Fixing this made the calendar appear and this error go away.

Upvotes: 0

Related Questions