AngularJS UI-Kalender nicht aktualisieren von Terminen auf dem Kalender

Ich bin mit Angular UI-Kalender zeigen einige Veranstaltungen auf dem Kalender. Die Veranstaltungen sind mit feinen, auf den Kalender. Aber wenn ich das update jedem Fall die details, die das Ereignis detail wirklich geändert, aber nicht geändert werden, auf die Kalender-Anzeige(z.B.: start).

Zunächst, nachdem ich verändert die Veranstaltung, die details, ich habe eine Seite neu laden, um die Anzeige geändert, ändert und es funktionierte auch.In dieser Methode, die ich hatte, leer $scope.events = []; array, welches ich ausgefüllt, nachdem das abrufen von Einträgen aus der DB.

Aber jetzt, ich wollen, um zu vermeiden, dass die Seite neu geladen. So, nachdem die Ereignis-details geändert modales Fenster, lösche ich den Inhalt $scope.events array mit $scope.events = []; und dann mittels API-Aufruf, fülle ich die neuen events wieder in $scope.events array. Dies ist in Ordnung, wie die Listenansicht zeigt die modifizierte events details. Aber der Kalender selbst zeigt an, alte Einträge. e.g wenn ich start vom 11. April bis 13. April, der Kalender zeigt die Veranstaltung am 11. April in der Erwägung, dass die Listenansichten zeigt die geänderten Daten ich.e 13 April. Mit Neuladen der Seite, behebt dieses ich.e-Ereignis gezeigt wird, auf geänderte Datum(13. April).

Wie kann ich sicherstellen, dass das Ereignis geändert wird, auf den Kalender zu, ohne eine Seite neu laden ?

Versuchte ich calendar.fullCalendar('render'); nach dem abrufen der neuen Einträge aus der DB, aber es löst das Problem nicht.

Hier sind einige codes :

Zunächst Tat ich dies, um Daten zu senden an die DB und dann hat die Seite neu laden, um aktualisierte Daten abzurufen.
$http.put(url,senddata).success(function(data){$window.location.reload();});

Nun möchte ich vermeiden, die Seite neu laden, so habe ich

        $http.put(url,senddata).success(function(data){//$window.location.reload();//sends modified data to server
        $scope.events = [];  //clear events array

   $http.get(url2).success(function(data){  //fetch new events from server, and push in array
  $scope.schedule = data;
          for(var i=0;i<data.length;i++)
          {
            $scope.events.push({
      idx: data[i].idx,
      title: data[i].title,
      description : data[i].description,
      allDay: false,
      start: new Date(data[i].start), 
      end:  new Date(data[i].end),

      });


     calendar.fullCalendar('render'); //Tried even this, didn't work



          }

        });

Obigen code schiebt modifizierte Ereignis in event array als sichtbar in der Liste anzeigen, aber der Kalender zeigt immer noch den alten Fall bis die Seite neu geladen wird.

InformationsquelleAutor Aniket Sinha | 2014-04-11

Schreibe einen Kommentar