twinssbc / Ionic-Calendar

A calendar directive for Ionic framework
http://twinssbc.github.io/Ionic-Calendar/demo
MIT License
159 stars 73 forks source link
calendar ionic

Ionic-Calendar directive

Ionic calendar directive

This repository only supports Ionic v1.

Please visit https://github.com/twinssbc/Ionic2-Calendar which supports higher version of Ionic.

Demo

http://twinssbc.github.io/Ionic-Calendar/demo/

Usage

Bower Install: bower install ionic-calendar

Load the necessary dependent files:

<link rel="stylesheet" href="http://code.ionicframework.com/1.1.1/css/ionic.min.css"/>
<link rel="stylesheet" href="https://github.com/twinssbc/Ionic-Calendar/blob/master/<bower lib installation path>/ionic-calendar/dist/css/calendar.min.css"/>
<script src="http://code.ionicframework.com/1.1.1/js/ionic.bundle.min.js"></script>
<script src="https://github.com/twinssbc/Ionic-Calendar/raw/master/<bower lib installation path>/ionic-calendar/dist/js/calendar-tpls.min.js"></script>

Add the calendar module as a dependency to your application module:

var myAppModule = angular.module('MyApp', ['ui.rCalendar'])

Add the directive in the html page

<calendar calendar-mode="mode" event-source="eventSource">

To change calendar selected date, simply use ng-model

$scope.selectedDate = new Date();
<calendar calendar-mode="mode" event-source="eventSource" ng-model="selectedDate"></calendar>

Options

View Customization Options

        <calendar ... monthview-display-event-template-url="monthviewDisplayEventTemplateUrl"></calendar>

        $scope.monthviewDisplayEventTemplateUrl = 'myTemplate.html';
        <calendar ... monthview-event-detail-template-url="monthviewEventDetailTemplateUrl"></calendar>

        $scope.monthviewEventDetailTemplateUrl = 'myTemplate.html';
        <calendar ... weekview-all-day-event-template-url="weekviewAllDayEventTemplateUrl"></calendar>

        $scope.weekviewAllDayEventTemplateUrl = 'myTemplate.html';
        <calendar ... weekview-normal-event-template-url="weekviewNormalEventTemplateUrl"></calendar>

        $scope.weekviewNormalEventTemplateUrl = 'myTemplate.html';
        <calendar ... dayview-all-day-event-template-url="dayviewAllDayEventTemplateUrl"></calendar>

        $scope.dayviewAllDayEventTemplateUrl = 'myTemplate.html';
        <calendar ... dayview-normal-event-template-url="dayviewNormalEventTemplateUrl"></calendar>

        $scope.dayviewNormalEventTemplateUrl = 'myTemplate.html';

Callback Options

EventSource

EventSource is an array of event object which contains at least below fields:

Note In the current version, the calendar controller only watches for the eventSource reference as it's the least expensive. That means only you manually reassign the eventSource value, the controller get notified, and this is usually fit to the scenario when the range is changed, you load a new data set from the backend. In case you want to manually insert/remove/update the element in the eventSource array, you can call broadcast the 'eventSourceChanged' event to notify the controller manually.

Events

i18n support

When including the angular locale script, the viewTitle and header of the calendar will be translated to local language automatically.

    <script src="http://code.angularjs.org/1.4.3/i18n/angular-locale_xx.js"></script>