for your question, I think you need something like that : http://plnkr.co/edit/gp0zIwnj9Oz3IpQPXhDI?p=preview
I added the data in the scope of your directive, this data is passed from the controller
scope: {
ngModel: '=',
somedata:'@'
},
The HTML :
<data-ng-pt-header somedata='{{somedata}}'></data-ng-pt-header>
And in the controller :
$scope.somedata='This comes from the controller';
and of course in the template :
<div class="well info-card days-left">
<legend>Spent</legend>
<span>{{somedata}}</span>
</div>
This is one of the many ways to pass data to a directive, the easiest, if you want more info on directives there is also this excellent post : http://amitgharat.wordpress.com/2013/06/08/the-hitchhikers-guide-to-the-directive/
For the two other questions, yes, it could be a good idea to send data to a directive from a controller, it depends a lot on the data and the logic you want, but your app seems to need it.
The best solution doesn't exist (at least not with seeing only one simple example), but as it seems to be a simple data exchange, the easiest way to go seems to match your requirements ;)
Have fun