Question: I have a directive and now I want to send same data to other controller's methods and this controller is totally independent of this directive. this other controller is actually resides out the current directory. 

How can I do this in angularjs?

Answer: 
Create an angular service and inject in both the controllers. Update a variable in that service from controller 1 and retrieve in controller 2. Something like this - 

```
myApp.factory('myFactory', function () {
    // declare and store the value in a local variable here
    var prop = '';

    return {
        getProperty: function () {
            return prop;
        },
        setProperty: function(value) {
            prop = value;
        }
    };
});

function Ctrl1($scope, myFactory) {
    myFactory.setProperty('myValue');
}

function Ctrl2($scope, myFactory) {
    val = myFactory.getProperty();
}

```

An angular service is a Singleton, so it maintains the state throughout the code.
In angularjs there is an idea about directive scope.It lets you to use data for directive with 3 ways.

1) string @

2) biDirectional =

3) functional &

I think you have heard about these.This link maybe can help you.
<https://docs.angularjs.org/api/ng/service/>$compile#directive-definition-object