Is this how to correctly communicate between two components that are scope siblings?
Well - you don't technically need $emit when communicating up to parent controllers, the child has access. But you do need $broadcast when communicating down to a child scope:
app.controller("parentCtrl", function($scope) {
$scope.testMe = function() {
$scope.$broadcast("done"); //transmit to ctrl2
}
});
app.controller("childCtrl1", function($scope) {
$scope.testMe(); //call parent
});
app.controller("childCtrl2", function($scope) {
$scope.$on("done", function() {
alert("Caught parent event");
});
});