2014-12-18 10 views
5

Sto tentando di accedere all'oggetto fullcalendar in ui-calendar. I documenti dicono che tutto quello che dobbiamo fare è dare l'attributo calendario di un nome:Accesso all'oggetto fullcalendar in Ui-calendar angolare

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

Poi, si dovrebbe essere in grado di accedere al calendario come ad esempio:

uiCalendarConfig.calendars.myCalendar 

questo non sta funzionando per me . L'oggetto che torno è sempre vuoto. Quello che sto cercando di fare in definitiva è cambiare la vista in modo programmatico. Se stavo usando solo fullcalendar di per sé, questo è come lo farei:

.fullCalendar('changeView', viewName) 

Come faccio a fare questo usando la direttiva ui-calendario?

Edit * Il mio oggetto di configurazione attuale:

$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 

    } 
}; 

mio attuale chiamata direttiva calendario:

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

mio regolatore:

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

'uiCalendarConfig' non corrisponde a nessuno dei tuoi valori di attributo – charlietfl

+0

cosa vuoi sembra un controller? è 'uiCalendarConfig' iniettato correttamente? – user2943490

risposta

5

Soluzione:

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

Questo non somiglia a ciò che la documentazione mi sta chiedendo di fare. Tuttavia risolve il mio problema.

+0

Ho appena scaricato la versione ui-calendar zippata 1.0 da github e questa soluzione ha funzionato per me –

0

Stai usando bower con la versione 0.9.0-beta1? Se sei, guarda il numero 195.

Come suggerito da @jrzeznik, una soluzione rapida sarebbe quella di sovrascrivere il file calendar.js con l'ultimo dal repository github.

5

Dopo aver cercato sul loro sito: http://angular-ui.github.io/ui-calendar/, ho trovato una soluzione.

si deve aggiungere variabili uiCalendarConfig nel controller

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

Aggiungere il calendario = "yourCalendarName"

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

Dopo di che è possibile iniziare a utilizzare le funzioni di FullCalendar come questo:

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

Questo è il modo corretto indicato in docs ("Questo sarà collegato all'oggetto costante uiCalendarConfig, a cui si può accedere tramite ** DI ** "). – pambuk

Problemi correlati