Just when you think you've got TypeScript figured out and are using es6 (es2015) module loading you discover your unit tests fail. Don't worry. It's not you, it's Mocha.
Writing an Angular controller using the controllerAs syntax has helped improve our code and nearly eliminate the need to inject $scope. This post will go over writing your controllers as classes in TypeScript to take that concept to the next level.
I tend to stick with the $http service as it works well and has no suprises. But, I can see the allure of the $resource service. Here's a really brief demo.
Both ngRepeat and ngOptions give you the ability to populate a list of options in a select input. Each has their place and I'm going to demonstrate where you'd use them.