- Don't use a '$' prefix when naming your services and models, in order to avoid any possible naming collisions.
http://docs.angularjs.org/api/AUTO.$injector
$inject.invoke(['serviceA', function(serviceA){}]);
instead of
$inject.invoke(function(serviceA){});
We can also use
PhoneListCtrl.$inject = ['$scope', '$http'];
instead of
var PhoneListCtrl = ['$scope', '$http', function($scope, $http) { /* constructor body */ }];
A boilerplate for AngularJS https://github.com/angular/angular-seed
http://docs.angularjs.org/guide/dev_guide.e2e-testing
<title ng-bind-template="Google Phone Gallery: {{query}}">Google Phone Gallery</title>