我正在 AngularUI 中编写一个带有一些过滤的事件日历。
<div
id="calendar"
ui-calendar="{ height: 450, editable: false, defaultView: 'month' }"
class="span9 pull-right calendar"
ng-model="events"
</div>
当过滤器下拉列表更改时,会触发一个函数,该函数应该执行一些巫术并更新 $scope.events。
(缩短)
// Clear $scope.events
$scope.events = [];
// Initialise new events
var new_events = all_events;
if($scope.events_filter.type != 'all') {
// Do filter
new_events = json_service.filter(
new_events,
'type',
$scope.events_filter.type
);
}
// Update $scope.events
$scope.events = new_events;
让我们从 6 个事件开始。如果有两种“类型”,每个类型有 3 个事件,让我们调用一种类型 A 和一种类型 B,您可以从 All 更改为 A,三个事件将正确显示。如果您改回“全部”,则将有 6 个可见。
如果您从 A 更改为 B,日历不会更新,但是,检查 $scope.events 会显示数据已更改。
过滤有效,并且 $scope.events 正在更新。
问题似乎是,如果 $scope.events 长度没有改变 - 它认为不适合重绘日历。