controller vs link function in directive