2014-12-18 11 views
5

Ich versuche, auf das Vollkalender-Objekt in ui-Kalender zuzugreifen. Die docs sagen, dass alles, was ich tun müssen, um den Kalender einen Namen Attribut geben:Zugriff auf Vollkalender-Objekt in Angular-ui-Kalender

<div ui-calendar="calendarOptions" ng-model="eventSources" calendar="myCalendar"> 

Dann sollten Sie in der Lage sein, den Kalender als solche zuzugreifen:

uiCalendarConfig.calendars.myCalendar 

Dies ist nicht für mich arbeiten . Das Objekt, das ich zurückbekomme, ist immer leer. Was ich letztendlich versuche, ist programmatisch die Ansicht zu wechseln. Wenn ich selbst nur fullcalendar wurde verwenden, das ist, wie ich es tun würde:

.fullCalendar('changeView', viewName) 

Wie kann ich tun dies die ui-Kalender-Direktive?

bearbeiten * Meine eigentliche Config Objekt:

$scope.uiConfig = { 
    calendar:{ 
     height: 700, 
     editable: true, 
     timezone:'America/Los Angeles', 
     ignoreTimezone:false, 
     header:{ 
      left: 'month basicWeek basicDay agendaWeek agendaDay', 
      center: 'title', 
      right: 'today prev,next' 
     }, 
     eventDrop: $scope.onEventDrop, 
     eventClick : $scope.onEventClick, 
     eventResize : $scope.onEventResize, 
     viewDisplay : $scope.onViewDisplay 

    } 
}; 

Meine aktuelle Kalender Richtlinie Aufruf:

<div ui-calendar="uiConfig.calendar" ng-model="events" calendar="myCalendar"></div> 

Mein Controller:

app.controller('CalendarCtrl', function($scope, $http, $rootScope, uiCalendarConfig){ 
    // bunch of methods plus $scope.uiConfig as shown above 
    // console.log(uiCalendarConfig) outputs {} 
}); 
+0

'uiCalendarConfig' passt nicht zu Ihren Attributwerten – charlietfl

+0

Was machen Sie? r Controller aussehen? wird 'uiCalendarConfig' richtig eingespielt? – user2943490

Antwort

5

Lösung:

$scope.myCalendar.fullCalendar('changeView', 'agendaDay'); 

Das sieht nicht so aus, wie die Dokumentation mich anweist. Es löst jedoch mein Problem.

+0

Ich habe gerade den gezippten ui-calendar Version 1.0 von github heruntergeladen und diese Lösung funktionierte für mich –

0

Verwenden Sie Bower mit Version 0.9.0-beta1? Wenn Sie sind, sehen Sie sich das Problem 195.

Wie @jrzeznik vorgeschlagen hat, wäre eine schnelle Lösung, die Datei calendar.js mit der neuesten aus dem Github-Repository zu überschreiben.

5

Nach dem Blick auf ihre Website: http://angular-ui.github.io/ui-calendar/, fand ich eine Lösung.

Sie haben uiCalendarConfig Variable in Ihrem Controller

angular.module('clientApp').controller('ControllerCtrl', function ($scope, uiCalendarConfig) { ... } 

In den Kalender = "yourCalendarName"

<div ui-calendar="uiConfig.calendar" ng-model="eventSources" class="calendar" calendar="yourCalendarName"> 

Danach hinzufügen Sie FullCalendar Funktionen wie diese verwenden können:

uiCalendarConfig.calendars.yourCalendarName.fullCalendar('unselect'); 
+0

Dies ist der korrekte Weg in der Dokumentation erwähnt ("Dies wird dem Konstantenobjekt uiCalendarConfig angehängt, auf das über ** DI ** zugegriffen werden kann "). – pambuk