私のサーバーからすべてのイベントデータを取得しています。私は多くのイベントを取得するため、角度ブートストラップカレンダーは負荷。anglejs-bootstrap-calendarに大量のイベントがロードされました。
現在のビュー(月、週、日..私は年のビューを隠すだろう)に1ヵ月分のデータを取り込めるかどうかは疑問でした。次の月に表示を変更すると、その月のデータのみが引き出されます。
今のところ、カレンダーが読み込まれても、ビューが変更されたときにデータを取り込む方法がわからない場合は、すべてのデータを1回だけ取り込みます。
var urlapievents = $location.protocol() + "://" + $location.host() + "/api/events/" ;
$http.get(urlapievents).success(function(events) {
ビューの私
取得年月のための良い解決策は、APIに送信し、そして唯一のその年の月のイベントを取得:
JS
vm.viewChangeClicked = function() {
var viewDateYearMonth = moment(vm.viewDate).format('YYYY-MM');
var urlapieventsall = $location.protocol() + "://" + $location.host() + "/api/events/" + viewDateYearMonth ;
$http.get(urlapieventsall).success(function(events) {
vm.events = events.events;
});
};
html
<div class="col-md-6 text-center">
<div class="btn-group">
<label class="btn btn-primary" ng-model="vm.calendarView" uib-btn-radio="'month'" ng-click="vm.cellIsOpen = false; vm.viewChangeClicked()">Month</label>
<label class="btn btn-primary" ng-model="vm.calendarView" uib-btn-radio="'week'" ng-click="vm.cellIsOpen = false; vm.viewChangeClicked()">Week</label>
<label class="btn btn-primary" ng-model="vm.calendarView" uib-btn-radio="'day'" ng-click="vm.cellIsOpen = false; vm.viewChangeClicked()">Day</label>
</div>
</div>
また、以前のyyyy-mmが現在のyyyy-mmと等しいかどうかを確認して、APIへの不要な呼び出しを保存するロジックを追加しました。この機能が内蔵されていないが(恥それは本当に便利に聞こえるので、)