<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<!------ Include the above in your HEAD tag ---------->
<!DOCTYPE html><html class=''>
<head><script src='//production-assets.codepen.io/assets/editor/live/console_runner-079c09a0e3b9ff743e39ee2d5637b9216b3545af0de366d4b9aad9dc87e26bfd.js'></script><script src='//production-assets.codepen.io/assets/editor/live/events_runner-73716630c22bbc8cff4bd0f07b135f00a0bdc5d14629260c3ec49e5606f98fdd.js'></script><script src='//production-assets.codepen.io/assets/editor/live/css_live_reload_init-2c0dc5167d60a5af3ee189d570b1835129687ea2a61bee3513dee3a50c115a77.js'></script><meta charset='UTF-8'><meta name="robots" content="noindex"><link rel="shortcut icon" type="image/x-icon" href="//production-assets.codepen.io/assets/favicon/favicon-8ea04875e70c4b0bb41da869e81236e54394d63638a1ef12fa558a4a835f1164.ico" /><link rel="mask-icon" type="" href="//production-assets.codepen.io/assets/favicon/logo-pin-f2d2b6d2c61838f7e76325261b7195c27224080bc099486ddd6dccb469b8e8e6.svg" color="#111" /><link rel="canonical" href="https://codepen.io/calendee/pen/Kcxaw?depth=everything&order=popularity&page=2&q=ionic&show_forks=false" />
<style class="cp-pen-styles">body {
cursor: url('https://ionicframework.com/img/finger.png'), auto;
}
.slider {
height: 100%;
}
.slider-slide {
padding-top: 80px;
color: #000;
background-color: #fff;
text-align: center;
font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
font-weight: 300;
}
#logo {
margin: 30px 0px;
}
#list {
width: 170px;
margin: 30px auto;
font-size: 20px;
}
#list ol {
margin-top: 30px;
}
#list ol li {
text-align: left;
list-style: decimal;
margin: 10px 0px;
}
</style></head><body>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<title>Ionic App</title>
<link href="https://code.ionicframework.com/1.0.0-beta.11/css/ionic.css" rel="stylesheet">
<script src="https://code.ionicframework.com/1.0.0-beta.11/js/ionic.bundle.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.mobile.js"></script>
</head>
<body ng-app="ionicApp" animation="slide-left-right-ios7">
<ion-nav-bar class="nav-title-slide-ios7 bar-light">
<ion-nav-back-button class="button-icon ion-arrow-left-c">
</ion-nav-back-button>
</ion-nav-bar>
<ion-nav-view></ion-nav-view>
<script id="firstSlide.html" type="text/ng-template">
<h1>First Slide!</h1>
<button class="button button-assertive" ng-click="showBonus()" ng-if="data.initialInstruction">Show Bonus Slide</button>
<p class="padding" ng-if="data.initialInstruction">Notice at first there are only 3 slides</p>
<p class="padding" ng-if="data.secondInstruction">Now there are 4 slides</p>
</script>
<script id="secondSlide.html" type="text/ng-template">
<h1>Second Slide!</h1>
</script>
<script id="bonusSlide.html" type="text/ng-template">
<h1>Bonus Slide!</h1>
</script>
<script id="thirdSlide.html" type="text/ng-template">
<h1>Third Slide!</h1>
</script>
<script id="intro.html" type="text/ng-template">
<ion-view title="Dynamic Slides">
<ion-nav-buttons side="left">
<button class="button button-positive button-clear no-animation"
ng-click="previous()" ng-if="data.slideIndex > 0">
Previous Slide
</button>
</ion-nav-buttons>
<ion-nav-buttons side="right">
<button class="button button-positive button-clear no-animation"
ng-click="next()" ng-if="data.slideIndex < data.numViewableSlides - 1">
Next
</button>
</ion-nav-buttons>
<ion-slide-box on-slide-changed="slideChanged(index)">
<ion-slide ng-repeat="slide in data.slides | filter:{viewable : true}">
<div ng-include src="slide.template"></div>
</ion-slide>
</ion-slide-box>
</ion-view>
</script>
<script id="main.html" type="text/ng-template">
<ion-view hide-back-button="true" title="Awesome">
<ion-content padding="true">
<h1>Main app here</h1>
<button class="button" ng-click="toIntro()">Do Tutorial Again</button>
</ion-content>
</ion-view>
</script>
</body>
</html>
<script src='//production-assets.codepen.io/assets/common/stopExecutionOnTimeout-b2a7b3fe212eaa732349046d8416e00a9dec26eb7fd347590fbced3ab38af52e.js'></script>
<script >angular.module('ionicApp', ['ionic'])
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('intro', {
url: '/',
templateUrl: 'intro.html',
controller: 'IntroCtrl'
});
$urlRouterProvider.otherwise("/");
})
.controller('IntroCtrl', function($scope, $state, $ionicSlideBoxDelegate) {
$scope.data = {
numViewableSlides : 0,
slideIndex : 0,
initialInstruction : true,
secondInstruction : false,
slides : [
{
'template' : 'firstSlide.html',
'viewable' : true
},
{
'template' : 'bonusSlide.html',
'viewable' : false
},
{
'template' : 'secondSlide.html',
'viewable' : true
},
{
'template' : 'thirdSlide.html',
'viewable' : true
}
]
};
var countSlides = function() {
$scope.data.numViewableSlides = 0;
_.forEach($scope.data.slides, function(slide) {
if(slide.viewable === true) $scope.data.numViewableSlides++;
})
console.log($scope.data.numViewableSlides + " viewable slides");
}
countSlides();
// Called to navigate to the main app
$scope.startApp = function() {
$state.go('main');
};
$scope.next = function() {
$ionicSlideBoxDelegate.next();
};
$scope.previous = function() {
$ionicSlideBoxDelegate.previous();
};
$scope.showBonus = function() {
var index = _.findIndex($scope.data.slides, { template : 'bonusSlide.html' });
$scope.data.slides[index].viewable = true;
countSlides();
$scope.data.initialInstruction = false
$scope.data.secondInstruction = true;
$ionicSlideBoxDelegate.update();
};
// Called each time the slide changes
$scope.slideChanged = function(index) {
$scope.data.slideIndex = index;
};
});
//# sourceURL=pen.js
</script>
</body></html>