A Pen by phuongphan on CodePen.
Created
June 19, 2014 09:26
-
-
Save four2theizz0/8bbd135ab45d0d1b74a7 to your computer and use it in GitHub Desktop.
A Pen by phuongphan.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html ng-app="ionicApp"> | |
<head> | |
<meta charset="utf-8"> | |
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> | |
<title>Side Menus</title> | |
<link href="http://code.ionicframework.com/1.0.0-beta.1/css/ionic.min.css" rel="stylesheet"> | |
<script src="http://code.ionicframework.com/nightly/js/ionic.bundle.min.js"></script> | |
</head> | |
<body> | |
<div ng-controller="MainCtrl"> | |
<ion-nav-view></ion-nav-view> | |
</div> | |
<script id="event-menu.html" type="text/ng-template"> | |
<ion-side-menus> | |
<ion-side-menu-content drag-content="false"> | |
<ion-nav-bar class="bar-positive" > | |
<ion-nav-back-button class="button-icon ion-arrow-left-c"> | |
</ion-nav-back-button> | |
</ion-nav-bar> | |
<ion-nav-buttons side="left"> | |
<button class="button button-icon button-clear ion-navicon" ng-click="toggleLeft()"> | |
</button> | |
</ion-nav-buttons> | |
<ion-nav-view name="menuContent"></ion-nav-view> | |
</ion-side-menu-content> | |
<ion-side-menu side="left"> | |
<ion-header-bar class="bar-assertive"> | |
<h1 class="title">Left Menu</h1> | |
</ion-header-bar> | |
<ion-content> | |
<ul class="list"> | |
<a href="#/event/check-in" class="item">Check-in</a> | |
<a href="#/event/attendees" class="item">Attendees</a> | |
</ul> | |
</ion-content> | |
</ion-side-menu> | |
</ion-side-menus> | |
</script> | |
<script id="home.html" type="text/ng-template"> | |
<ion-view title="Home"> | |
<ion-content class="padding" scroll="false"> | |
<div class="noscrollsection"> | |
Have no scroll | |
</div> | |
<hr> | |
<div class="scrollsection"> | |
<h5 class="title">Ionic Infinite Scroll with {{items.length}} items</h5> | |
<ion-scroll direction="x" class="item wide-item"> | |
<div ng-repeat="item in items" | |
class="item"> | |
<p ng-click="goToPage()">{{ $index }}. item {{ item.id }}</p> | |
</div> | |
</ion-scroll> | |
<ion-infinite-scroll ng-if="!noMoreItemsAvailable" icon="ion-loading-c" on-infinite="loadMore()" distance="10%"></ion-infinite-scroll> | |
</div> | |
</ion-content> | |
</ion-view> | |
</script> | |
<script id="check-in.html" type="text/ng-template"> | |
<ion-view title="Event Check-in"> | |
<ion-content> | |
<form class="list" ng-show="showForm"> | |
<div class="item item-divider"> | |
Attendee Info | |
</div> | |
<label class="item item-input"> | |
<input type="text" placeholder="First Name" ng-model="attendee.firstname"> | |
</label> | |
<label class="item item-input"> | |
<input type="text" placeholder="Last Name" ng-model="attendee.lastname"> | |
</label> | |
<div class="item item-divider"> | |
Shirt Size | |
</div> | |
<ion-radio ng-repeat="shirtSize in shirtSizes" | |
ng-value="shirtSize.value" | |
ng-model="attendee.shirtSize"> | |
{{ shirtSize.text }} | |
</ion-radio> | |
<div class="item item-divider"> | |
Lunch | |
</div> | |
<ion-toggle ng-model="attendee.vegetarian"> | |
Vegetarian | |
</ion-toggle> | |
<div class="padding"> | |
<button class="button button-block" ng-click="submit()">Checkin</button> | |
</div> | |
</form> | |
<div ng-hide="showForm"> | |
<pre ng-bind="attendee | json"></pre> | |
<a href="#/event/attendees">View attendees</a> | |
</div> | |
</ion-content> | |
</ion-view> | |
</script> | |
<script id="attendees.html" type="text/ng-template"> | |
<ion-view title="Event Attendees" left-buttons="leftButtons"> | |
<ion-content> | |
<div class="list"> | |
<ion-toggle ng-repeat="attendee in attendees | orderBy:'firstname' | orderBy:'lastname'" | |
ng-model="attendee.arrived" | |
ng-change="arrivedChange(attendee)" | |
ng-click="goBack()"> | |
{{ attendee.firstname }} | |
{{ attendee.lastname }} | |
</ion-toggle> | |
<div class="item item-divider"> | |
Activity | |
</div> | |
<div class="item" ng-repeat="msg in activity"> | |
{{ msg }} | |
</div> | |
</div> | |
</ion-content> | |
</ion-view> | |
</script> | |
</body> | |
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
angular.module('ionicApp', ['ionic']) | |
.config(function($stateProvider, $urlRouterProvider) { | |
$stateProvider | |
.state('eventmenu', { | |
url: "/event", | |
abstract: true, | |
templateUrl: "event-menu.html" | |
}) | |
.state('eventmenu.home', { | |
url: "/home", | |
views: { | |
'menuContent' :{ | |
templateUrl: "home.html", | |
controller:"HomeCtrl" | |
} | |
} | |
}) | |
.state('eventmenu.checkin', { | |
url: "/check-in", | |
views: { | |
'menuContent' :{ | |
templateUrl: "check-in.html", | |
controller: "CheckinCtrl" | |
} | |
} | |
}) | |
.state('eventmenu.attendees', { | |
url: "/attendees", | |
views: { | |
'menuContent' :{ | |
templateUrl: "attendees.html", | |
controller: "AttendeesCtrl" | |
} | |
} | |
}) | |
$urlRouterProvider.otherwise("/event/home"); | |
}) | |
.controller('MainCtrl', function($scope, $ionicSideMenuDelegate) { | |
$scope.attendees = [ | |
{ firstname: 'Nicolas', lastname: 'Cage' }, | |
{ firstname: 'Jean-Claude', lastname: 'Van Damme' }, | |
{ firstname: 'Keanu', lastname: 'Reeves' }, | |
{ firstname: 'Steven', lastname: 'Seagal' } | |
]; | |
$scope.toggleLeft = function() { | |
$ionicSideMenuDelegate.toggleLeft(); | |
}; | |
}) | |
.controller('CheckinCtrl', function($scope) { | |
$scope.showForm = true; | |
$scope.shirtSizes = [ | |
{ text: 'Large', value: 'L' }, | |
{ text: 'Medium', value: 'M' }, | |
{ text: 'Small', value: 'S' } | |
]; | |
$scope.attendee = {}; | |
$scope.submit = function() { | |
if(!$scope.attendee.firstname) { | |
alert('Info required'); | |
return; | |
} | |
$scope.showForm = false; | |
$scope.attendees.push($scope.attendee); | |
}; | |
}) | |
.controller('AttendeesCtrl', function($scope,$ionicViewService) { | |
$scope.activity = []; | |
$scope.arrivedChange = function(attendee) { | |
var msg = attendee.firstname + ' ' + attendee.lastname; | |
msg += (!attendee.arrived ? ' has arrived, ' : ' just left, '); | |
msg += new Date().getMilliseconds(); | |
$scope.activity.push(msg); | |
if($scope.activity.length > 3) { | |
$scope.activity.splice(0, 1); | |
} | |
}; | |
$scope.goBack = function() { | |
debugger; | |
var history = $ionicViewService.getBackView(); | |
$ionicViewService.goToHistoryRoot("001"); | |
} | |
}) | |
.controller('HomeCtrl', function($scope, $location, $ionicScrollDelegate) { | |
$scope.noMoreItemsAvailable = false; | |
$scope.number = 10; | |
$scope.items = []; | |
$scope.loadMore = function() { | |
for(var i=0; i<$scope.number; i++){ | |
$scope.items.push({ | |
id: $scope.items.length}); | |
} | |
if ( $scope.items.length > 99 ) { | |
$scope.noMoreItemsAvailable = true; | |
} | |
$scope.$broadcast('scroll.infiniteScrollComplete'); | |
}; | |
$scope.goToPage= function(){ | |
$location.url('/event/attendees'); | |
}; | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
body { | |
cursor: url('http://ionicframework.com/img/finger.png'), auto; | |
} | |
ion-scroll .item { | |
display: inline-block; | |
margin: 0; | |
width:200px; | |
height:200px | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment