Do you think that parent controller can access the methods of child controller or vice versa?

No, the parent controller cannot access the methods of child controller, but the child controller can access the methods of the parent controller.

In AngularJS, controllers in the same scope hierarchy can communicate with each other, but direct access to methods of one controller from another is not recommended. Controllers in AngularJS are meant to be independent and encapsulated.

However, you can achieve communication between parent and child controllers through various methods:

  1. Using $scope: You can use $scope to share data and functions between controllers within the same scope hierarchy.
    javascript
    // Parent Controller
    app.controller('ParentController', function($scope) {
    $scope.parentFunction = function() {
    // Parent function logic
    };
    });

    // Child Controller
    app.controller('ChildController', function($scope) {
    $scope.childFunction = function() {
    // Child function logic
    };

    // Accessing parent function
    $scope.parentFunction();
    });

  2. Using Services: Create a service to share data or functions between controllers. Services are singleton objects, so they can be shared across controllers.
    javascript
    // Shared Service
    app.service('sharedService', function() {
    var sharedData = {};

    return {
    getSharedData: function() {
    return sharedData;
    },
    setSharedData: function(data) {
    sharedData = data;
    }
    };
    });

    // Parent Controller
    app.controller('ParentController', function(sharedService) {
    sharedService.setSharedData({ /* data */ });
    });

    // Child Controller
    app.controller('ChildController', function($scope, sharedService) {
    var sharedData = sharedService.getSharedData();
    });

Remember, AngularJS has reached its end of life, and it is recommended to use more modern versions of Angular like Angular 2+ for new projects