According to this answer I just want fire event from controller to another

[Call a method of a controller from another controller using 'scope' in AngularJS](https://stackoverflow.com/questions/19468334/call-a-method-of-a-controller-from-another-controller-using-scope-in-angularjs)

```
$scope.$on("myEvent", function (event, args) {
   $scope.rest_id = args.username;
   $scope.getMainCategories();
});

```

And in the second controller you'd just do

```
$scope.initRestId = function(){
   $scope.$broadcast("myEvent", {username: $scope.user.username });
};

```

But I don't use $scope in my application, just controllerAs and this. There is a way to fire event without inject the scope ? Or should I inject $scope anyway ?But I read in another answer that using both scope and controllerAs is bad practice.