Angularjs removes data- from attributtes, so !attrs.hasOwnProperty('data-' + propName) is always true and the default values cannot be overwriten.
Related issue angular/angular.js#4478
Ensure that properties can be overwritten
This is a fix for issue #18
I was also bitten by this, so have created a pull request that should fix the issue.