hi,
if you use the short syntax:
click: $parent.foo
knockout will use $data as parameter for the function
if you use an anonymous function:
you simple call foo on $parent which is the collection and pass no arguments.
you may add the parameter:
click: function(){ $parent.foo($data);}
best regards,
noirabys
btw there is no need for requireJS since knockout can asynchronously load components and their models.