Using the `controllerAs` method does not involve directly interacting with `$scope` in the controller. It's a technique that aims to prevent mixing `$scope` with the template and enhance code readability. However, even when employing the `controllerAs` syntax, it is still possible to inject `$scope` into your controller without any issues. The main idea behind `controllerAs` is to utilize `$scope` for specific tasks such as `$scope.$apply`, rather than treating it as a view model.
Although it is not necessarily wrong to inject `$scope` while utilizing `controllerAs`, it can lead to poor practice if `$scope` is used as a replacement for a view model. Even if you refrain from injecting it explicitly, `$scope` will still be present in the controller internally since it is inherent to the structure of a controller. The essence of using `controllerAs` lies in segregating the responsibilities of the view model from the rest of `$scope`. Ultimately, the view model becomes an integrated part of the scope but remains separated from other functionalities offered by `$scope`.