清空数组后,Angular不会更新

时间:2015-12-07 14:02:16

标签: javascript angularjs fullcalendar angularfire

我有以下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 个答案:

答案 0 :(得分:1)

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

self.eventSources = []; 

相反,我用以下代码替换了这行:

self.eventSources.length = 0;

我的一切都像魅力一样。