The controllerAs way have nothing to do with $scope in the controller. It's a pattern to avoid contact between $scope and the template and also improve readability. However, even though you are using controllerAs syntax, you can inject $scope on your controller with no problems. That's what controllerAs is about, use the $scope for propper tasks such as $scope.$apply, but not as a view model.
It's not a bad practice injecting the $scope even though you're using controllerAs. But it would be a bad practice if you use $scope to work like a view model. Anyhow, even if you don't inject, $scope will exists somehow in the controller internals, it's part of a controller. The aproach of controllerAs is to separate the role of view model from the $scope. In the end the view model become a part of the scope but it's isolated from the rest of $scope's features.
$scope? It's used for data binding between the view and the controller.thishas nothing to do with saving variables and functions. Would be same number of variables if you used$scope$scopespecifically, just trying fallow the @john_papa style guide (github.com/johnpapa/angular-styleguide/blob/master/a1/…)controllerAs... don't need to inject it for all controllers$digest()or$apply()?" The need to use those should be very rare.