You're specifying an array as the parameter.
<input type="checkbox" ng-click="select([f.id],'file')">
Should be
<input type="checkbox" ng-click="select(f.id,'file')">
You create arrays in javascript using the square brackets.
var array = [ 1, 2, 3, 4];
So you created an array with a single value in which was your id.
- Even if you use the same syntax as an array for your bindings you don't need to use bindings in that context.
- You shouldn't "override" a standard language construct to do something completely different as you might get unexpected behaviour
- Proof http://plnkr.co/edit/4n2yg6QudzcFA5bazjZ3?p=preview