2015-10-05 3 views
5

So, hier ist die Bedingung im Problem mit, es ist wie ich Eltern-Controller und einen Kind-Controller verfügen, die ein modaler Controller ist, i ein Verfahren, bei Parent-Controller hat die Ich möchte von Kind Modal Controller anrufen, ich weiß nicht, was ich vermisse, aber das ist, was ich versucht habe.Anruf eine Elternteil Controller-Methode von Kind modal Controller (ui Bootstrap)

App.controller('MailFolderController', ['$scope', '$http', '$timeout', '$stateParams', '$window', 'mails', '$interval', function ($scope, $http, $timeout, $stateParams, $window, mails, $interval) { 


$scope.check = function(){ 
    console.log("call parent ==========>") 
} 


    App.controller('orderCancellationController', ['$scope', '$modal', function ($scope, $modal) { 

    $scope.open = function (mail) { 
     var modalInstance = $modal.open({ 
      templateUrl: '/orderCancellationBox.html', 
      controller: ModalInstanceCtrl, 
      resolve: { 
       mail: function() { 
        return mail; 
       } 
      } 
     }); 
    }; 

    // Please note that $modalInstance represents a modal window (instance) dependency. 
    // It is not the same as the $modal service used above. 

    var ModalInstanceCtrl = function ($scope, $modalInstance, mail) { 

     $scope.mail = mail; 
     $scope.submit = function() { 
      $scope.$parent.check(); 
      $modalInstance.close('closed'); 
     }; 

     $scope.cancel = function() { 
      $modalInstance.dismiss('cancel'); 
     }; 
    }; 
    ModalInstanceCtrl.$inject = ["$scope", "$modalInstance", 'mail']; 

}]); 


}]); 

aber es gibt mir einen Fehler keine solche Funktion, i m beim Check-Methode immer Fehler, ich möchte von Modalinstanz Controller dieses Kontrollverfahren nennen, aber nicht in der Lage zu tun, bitte helfen Sie.

+0

versuchen hinzuzufügen ‚Anwendungsbereich: $ scope‘ unter dem ‚Controller: ModalInstanceCtrl‘ – klskl

+0

im sorry, nur knapp sein Ziel Sie erhalten, können Sie bitte ein wenig –

+0

aktualisiert meine Antwort unten mit einem Beispiel – klskl

Antwort

11

https://angular-ui.github.io/bootstrap/#/modal

Modal in Bootstrap hat eine 'Umfang' Option,

Umfang - einen Umfang Instanz für den Inhalt der modalen verwendet wird (tatsächlich der $ modal Service wird ein Kind Bereich erstellen eines bereitgestellten Umfangs). Vorgabe $ rootScope

scope: $scope mit sollte Ihnen ermöglichen, Methoden in der übergeordneten Steuerung

Beispiel definiert zu verwenden:

$scope.open = function (mail) { 
    var modalInstance = $modal.open({ 
     templateUrl: '/orderCancellationBox.html', 
     controller: ModalInstanceCtrl, 
     scope: $scope, 
     resolve: { 
      mail: function() { 
       return mail; 
      } 
     } 
    }); 
}; 
+0

Vielen Dank Kumpel –

+0

np erklären, ich denken können Sie auch die Methode ‚Entschlossenheit‘ (wie Sie mit E-Mail tun), aber ich habe nicht versucht, dass mich – klskl

+0

eigentlich Grund, warum Funktion aufrufen, ohne '$ parent' arbeitet Prototypvererbung ist, bin ich richtig? – Anatoly

1

Resolve $ scope in $ modal und einfach $ scope.parent nennen. check, und du bist fertig !!

Verwandte Themen