<!DOCTYPE html>
<html>

  <head>
    <script data-require="angular.js@*" data-semver="1.2.13" src="http://code.angularjs.org/1.2.13/angular.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
  </head>

  <body>
    <h1>Directive 2 scope talkback</h1>
    <div class="col-md-3 bgLightGrey">
	<input
		type="file"
		placeholder="File upload"
		ng-model="newItem.file"
		upload-file={"img":["jpg","jpeg","bmp","png","gif"],"doc":["doc"],"appl":["pdf"]}
		max-file-size="5">
	</div>
  </body>

</html>
// Code goes here
angular.module('testApp',[])
.directive('uploadFile',function(){
	return{
		restrict: 'A',
		scope:{ngModel: '=ngModel'},
		link: function(scope,element,parentController){
			var listener = function(e){
				e.stopPropagation();
				e.preventDefault();
				var setScopeVal = function(val){
console.log(val); //<<=== this dumps base64 data to console
scope.ngModel=val;
				};
				var f = this.files[0];
				var reader = new FileReader();
				reader.onload = (function(f){
					return function(e){
setScopeVal(e.target.result); //<<=== this gives access to the base64 encoded filedata
					};
				})(f);
				reader.readAsDataURL(f);
			};
			element.bind('change',listener);
			}
		};
	}
);
/* Styles go here */