Angular JS Switcharoo multiple select module
I really like your code, I only have 2 minor observations:


I understand the part where default has the default items. I am not sure that after initialization you should keep referring to the default variable ( from a naming perspective ), maybe call it selection instead of default ?
Related to the previous point, ng-if="default.indexOf(key) == -1" and ng-if="default.indexOf(key) &gt; -1" only make sense during initialization. In my mind, it would be ideal to provide a isSelected( key ) that you can use for the ng-if. Not to mention that it will remove a &gt; out of your HTML attribute and look better in Markup ;)