Lookup with Custom Item template

The Search action of the LookupController returns json of AjaxListResult, so doing Custom Item Template and Table Layout is exactly the same as for the AjaxList helper
Meal:
 

Lookup with Table Layout

Meal table:
 

Lookup bound to many parents

Binding to parents and setting predefined parameters is done the same as for the AjaxDropdown using .Parent() and .Parameter(), values are passed to both GetItem and Search actions
Parent Categories:
  •  
Parent Category:
Child Meal:
 

Setting predefinded parameters

Meal1 (categories = Legumes):
 
Meal1 (categories = {Fruits,Legumes}):