Call Child Controller from another Controller

I have an application with add and edit modal,when click edit or add ;it’s open a modal.
my Problem is :I want to have a function that’s open a modal Just by call it and this function I want to define it in the root scope,when I do that I have an error in the resolve function.

DefaultModule.controller("navCtrl", function ($scope, $rootScope, $uibModal) {       
    $rootScope.OpenModal = function (templateModalUrl, controllerModal, resolveFun) {
            animation: true,
            templateUrl: templateModalUrl,
            controller: controllerModal,
            resolve: {
        }).result.catch(function (res) {
            if (!(res === 'cancel' || res === 'escape key press')) {
                //throw res;

calling it:

$scope.editBusiness = function (business) {
    var ObjResolve = function () {
        return business;
    $rootScope.OpenModal("BusinessTypesModal.html", "ModalInstanceCtrl", ObjResolve);

and the error that’s I get:

Error: $injector:unpr
Unknown Provider
Unknown provider: ObjResolveProvider <- ObjResolve <- ModalInstanceCtrl

P.S. the template of the modal is defined in another controller -not navCtrl Controller-

Source: AngularJS