getExternalDoc doesn't do any sort of caching - you're fetching the same .json file on every apiCategoryChange. getExternalDoc and getModelDoc should cache. I believe you can do `$http.get(externalDoc, {cache:true});` but you should test that.