-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
59 lines (54 loc) · 1.52 KB
/
Copy pathapp.js
File metadata and controls
59 lines (54 loc) · 1.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
cardGameApp = angular.module('CardGameApp', [])
.controller('CardDisplayController', CardDisplayController)
.directive('fileChange', fileChange);
CardDisplayController.$inject = ['$scope'];
function CardDisplayController($scope) {
var cardDisplayController = this;
cardDisplayController.cards = [];
cardDisplayController.upload = function () {
var reader = new FileReader();
reader.onload = function(){
var cards = JSON.parse(reader.result).drawn_cards;
function cardValue(card) {
value = card['value'];
switch (card['value']) {
case 'ACE':
value = 00; break;
case 'JACK':
value = 11; break;
case 'QUEEN':
value = 12; break;
case 'KING':
value = 13; break;
}
return parseInt(value);
}
cardDisplayController.cards = cards.sort(function(a, b) {
if (cardValue(a) < cardValue(b)) return -1;
if (cardValue(a) > cardValue(b)) return 1;
return 0;
});
$scope.$digest();
};
reader.readAsText(cardDisplayController.file);
};
}
function fileChange() {
return {
restrict: 'A',
require: 'ngModel',
scope: {
fileChange: '&'
},
link: function link(scope, element, attrs, ctrl) {
element.on('change', onChange);
scope.$on('destroy', function () {
element.off('change', onChange);
});
function onChange() {
ctrl.$setViewValue(element[0].files[0]);
scope.fileChange();
}
}
};
}