我有以下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

最佳答案

因此,事实证明,以下代码行切断了日历和模型之间的连接,因为它创建了一个新数组:

self.eventSources = [];


相反,我将行替换为:

self.eventSources.length = 0;


而且我都像魅力一样工作。

08-19 19:15