いくつかのフィルタリングを使用して、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つのイベントから。たとえば、2 つの「タイプ」があり、それぞれに 3 つのイベントがあり、1 つのタイプ A と 1 つのタイプ B を呼び出すと、すべてから A に変更でき、3 つのイベントが正しく表示されます。「すべて」に戻すと、6 つ表示されます。
A から B に変更すると、カレンダーは更新されませんが、$scope.events を調べると、データが変更されたことが示されます。
フィルタリングが機能し、$scope.events が更新されています。
問題は、 $scope.events の長さが変わらない場合、カレンダーを再描画するのに適していないと思われることです。