I would like to use angular services before doing a manual bootstrap(the ng-app directive is not being used). Is there a way to access angular services without calling angular.bootstrap on an empty div?
The following approach works, but I'm wondering if there is a more direct solution:
var element = angular.element('<div></div>');
angular.bootstrap(element);
var $injector = element.injector();
var $http = $injector.get('$http');
var $location = $injector.get('$location');
There isn't a way to do it without calling bootstrap (or getting the injector from an already bootstrapped element), but there is a slightly more direct way of doing it:
var $http = angular.bootstrap().get('$http');
Or, if you need multiple services, you can do this:
angular.bootstrap().invoke(function($http, $location){
$http.get('/foo');
$location.path('/foo');
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With