Angular не обновляется после очистки массива

У меня есть следующий HTML-код, где первая строка показывает:

<p>{{cal.eventSources}}</p>
<div ui-calendar ng-model="cal.eventSources"></div>

В моем JS у меня есть:

    $scope.$apply(setupCalendarEvents());

    function setupCalendarEvents(){

      self.eventSources = []; 

      angular.forEach(bookingMap, function(value, key) {
        self.eventSources.push(bookingMap[key]);
      });

    }

Проблема: почему первая HTML-строка обновляется, но события не попадают в календарь?

Больше информации

Если я удалю self.eventSources = []; После этого события появляются в календаре, но каждый раз, когда я добавляю событие, все предыдущие события дублируются.

Если я удалю $scope.$apply() тогда ничего не обновляется.

Я использую ui.calendar

1 ответ

Решение

Таким образом, получается, что следующая строка кода разрывает связь между календарем и моделью, потому что она создает новый массив:

self.eventSources = []; 

Вместо этого я заменил строку на:

self.eventSources.length = 0;

И у меня все работает как шарм.

Другие вопросы по тегам