Question: I noticed a weird thing when I was writing an angular directive. In the isolated scope of the directive, if I bind an attribute using `myAttr: '@'` to the parent scope variable with the same name, and then use that attribute in the html template, there will be an extra space trailing the attribute value. If the attribute is bound to the parent scope variable with a different name using `myAttr: '@thatAttr'`, however, there is no extra space and the world is happy.

Please see [this jsFiddle](http://jsfiddle.net/EEpv2/2/) for a demonstration. As you can see, the css rules under `div[bad=foo]` is not applied because of the extra space, while `div[good=bar]` is perfectly fine.

The fiddle uses Angular 1.3 by the way. Does anyone know why this is the case?

Answer: 
[Known bug](https://github.com/angular/angular.js/issues/8132) in Angular, likely will not be fixed
I had a similar problem - I added "@id" as an attribute in m Directive. That worked - however it inserted me an additional blank space at the end of the id value.

It turned out that Angular takes over the id by default! After removing "@id" from the scope attributes of my directive, I could use "{{id}}" without any problems.