<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/angular-material/0.10.1/angular-material.min.css"/>
<script data-require="angular.js@*" data-semver="1.4.3" src="https://code.angularjs.org/1.4.3/angular.js"></script>
<script data-require="angular-resource@1.4.3" data-semver="1.4.3" src="https://code.angularjs.org/1.4.3/angular-resource.js"></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/angular-material/0.10.1/angular-material.min.js'></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body ng-app="PinterestHQPhotos">
<div ng-controller="PinList">
<md-content class="md-padding">
<pin-loader ng-click='openFullscreen()' ng-repeat="pin in pins" src="pin.images['237x'].url.replace('237x', 'originals')" height="100%" >
</pin-loader>
</md-content>
</div>
</body>
</html>
// Code goes here
angular
.module('PinterestHQPhotos', ['ngResource', 'ngMaterial'])
.controller('PinList', ['$scope', '$resource', '$mdDialog', function($scope, $resource, $mdDialog){
var Pin = $resource('http://api.pinterest.com/v3/pidgets/boards/:username/:board/pins/', {
callback: "JSON_CALLBACK"
},
{
getPins: {
method: "JSONP"
}
});
$scope.username = 'thevarunoberoi';
$scope.board = 'wallpapers';
$scope.pins = [];
Pin
.getPins({username: $scope.username, board: $scope.board})
.$promise
.then(function(res){
$scope.pins = res.data.pins;
});
$scope.openFullscreen = function(ev) {
$mdDialog.show({
template: 'Yo',
parent: angular.element(document.body),
targetEvent: ev,
clickOutsideToClose:true
})
}
}])
.directive('pinLoader', [function(){
return {
link: function(scope, element, attrs) {
scope.size = {
height: 0,
width: 0
}
element.find('img').bind("load" , function(e){
scope.size.height = this.naturalHeight
scope.size.width = this.naturalWidth
console.log(scope.size)
scope.$apply()
});
},
templateUrl: 'item-template.html',
scope: {
src: '&'
}
}
}])
/* Styles go here */
<md-card>
<img ng-src="{{src()}}" class="md-card-image" alt="Washed Out">
<md-card-content>
<h2 class="md-title">Paracosm</h2>
<p>
{{size.width}}x{{size.height}}
</p>
</md-card-content>
</md-card>