<!DOCTYPE html>
<html ng-app="myApp">
<head>
<script data-require="angular.js@*" data-semver="1.4.0-beta.6" src="https://code.angularjs.org/1.4.0-beta.6/angular.js"></script>
<link rel="stylesheet" href="style.css" />
<link href='http://fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css'>
<script src="script.js"></script>
<!-- SCROLLS -->
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" />
<!-- Custom styles for this template -->
<link href="http://getbootstrap.com/examples/sticky-footer/sticky-footer.css" rel="stylesheet">
</head>
<body ng-controller="myCtrl">
<header class="plain-header">
<div class="container">
<nav>
<ul class="nav navbar-nav navbar-left" id="home_link">
<li><a href="http://bryanttunbutr.com/">Bryant Tunbutr</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="https://bryanttunbutr.wordpress.com/">Blog</a></li>
<li><a href="http://www.bryanttunbutr.com/projects">Projects</a></li>
<li><a href="mailto:BTunbutr@gmail.com">Contact</a></li>
</ul>
</nav>
</div>
</header>
<div class="container">
<h1>Pets Speak</h1>
<h3>By Using AngularJS Directives</h3>
<p>Click on the image to go to the original image, and click the button to be greeted by each pet.</p>
<div ng-repeat="m in mutants">
<div actor-tile actor="m"></div>
</div>
</div>
<!-- Footer -->
<footer class="footer">
<div class="container">
<span style="float:left;">©2015 Bryant Tunbutr</span>
<span style="float:right;">
<a href="http://www.bryanttunbutr.com/projects" id="home">Projects</a>
<a href="https://bryanttunbutr.wordpress.com/" id="blog" style="padding-left:20px">Blog</a></span>
</div>
<!-- end Container-->
</footer>
</body>
</html>
// Code goes here
angular.module('myApp', []);
angular.module('myApp').directive('actorTile', function() {
return {
restrict: 'A',
scope: {
actor: '='
},
replace: true,
templateUrl: 'actor-tile-template.html',
link: function(scope, elem, attrs) {
scope.hi = function() {
alert(scope.actor.says + '!');
// alert(scope.actor.says + '!');
};
elem.find('img').on('click', function() {
window.open(scope.actor.image);
});
}
};
});
angular.module('myApp').controller('myCtrl', function($scope) {
$scope.mutants = [{
name: 'Dog',
breed: 'Shiba Inu',
says: 'Woof',
image: 'https://upload.wikimedia.org/wikipedia/commons/6/69/Shiba_Inu_cream_portrait.jpg'
}, {
name: 'Cat',
actor: 'Siamese',
says: 'Meow',
image: 'https://upload.wikimedia.org/wikipedia/commons/c/ca/Niobe050905-Siamese_Cat.jpeg'
}, {
name: 'Snake',
actor: 'Brown tree snake',
says: 'Ssssss',
image: 'https://upload.wikimedia.org/wikipedia/commons/c/c9/Brown_tree_snake_Boiga_irregularis_2_USGS_Photograph.jpg'
}];
});
function sample ($scope) {
$scope.procedures = [
{
definition: 'Procedure 1',
discharged: 23
},
{
definition: 'Procedure 2',
discharged: 2
},
{
definition: 'Procedure 3',
discharged: 356
}
];
}
/* Styles go here
h3, p {
padding: 0;
margin: 0;
}
body {
font-family: 'Roboto', sans-serif;
}
.actor-tile {
border: 1px solid lightgray;
padding: 5px;
border-radius: 3px;
box-shadow: 0 0 4px lightgray;
margin: 10px;
max-width: 150px;
float: left;
}
.actor-tile img {
margin-top: 5px;
width: 100%;
}
.actor-tile button {
width: 100%;
}
*/
.categories {
/* margin: 0 0 10px; */
margin-left: auto;
margin-right: auto;
}
.categories ul {
/* margin-left: auto;
margin-right: auto; */
margin: 0 auto 0 auto;
padding: 0;
width: 100px;
background: #f0f0f0;
border: solid 1px #333;
text-align: center;
list-style-type: none;
}
img {
max-width: 250px;
}
.footer {
height: 40px;
background-color: transparent !important;
}
.plain-header {
a {
color: #428bca;
}
a:hover,
a:focus {
background-color: #FFF;
color: #0085a1;
}
position: relative;
padding: 30px 15px;
text-align: center;
font-size: 20px;
}
#home_link {
font-size: 1.7em;
color: white;
text-transform: uppercase;
letter-spacing: -1px;
padding: 9px 15px;
font-weight: bold;
}
#logo {
color: #428bca;
position: relative;
text-align: center;
font-size: 20px;
padding: 30px 15px;
text-align: left;
:hover, :focus {
background-color: #eeeeee;
color: #0085a1;
}
}
#logo:hover,
#logo:focus {
background-color: #eeeeee;
color: #0085a1;
}
.footer {
height: 40px;
background-color: transparent;
}
h1,
h3 {
text-align: center;
}
.centering {
text-align: center;
}
.center-block {
float: none !important
}
<div class="container centering">
<div class="actor-tile">
<h3>{{ actor.name }}</h3>
<p>{{ actor.breed }}</p>
<img ng-src="{{ actor.image }}">
<br>
<button type="button" class="btn btn-info" href="#" ng-click="showDetails = ! showDetails">What do I say?</button>
<div class="procedure-details" ng-show="showDetails">
<p>I say: {{actor.says}}!</p>
</div>
</div>
</div>