You should be pulling matchData.matches[$scope.counter] once, caching it locally, and using that to populate the scope's properties.