using a scope watch to trigger cache changes instead of the $locationChangeStart event, which triggers too late when using angular-ui router