/ / Come chiamare il controller popup modale bootstrap ui da un altro controller angolare js - angularjs, angular-ui-bootstrap

Come chiamare il controller popup mod ui bootstrap da un altro controller angolare js - angularjs, angular-ui-bootstrap

come posso chiamare il popup modale ui bootstrap da dentro un altro controller, come la condizione è come invece di chiamare dalla vista ho bisogno di chiamarlo da una funzione

       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 ==========>")
// call open method in modal popup here
}


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"];

}]);


}]);

quindi voglio chiamare il metodo open in orderCancellationController dall'interno del metodo check, help !!

risposte:

2 per risposta № 1

Seguendo l'esempio dal mio commento: Funzione di chiamata modale di chiamata angolare da un controller a un altro

Per aprire la modale da un altro controller devi creare un servizio, l'ho fatto nel mio file app.js, in questo modo:

myApp.service("modalProvider",["$modal", function ($modal) {

this.openPopupModal = function () {
var modalInstance = $modal.open({
templateUrl: "/orderCancellationBox.html",
controller: "ModalInstanceCtrl"
});
};
}]);

Poi nel controller desidero aprire la mia modal da, inietto il servizio "modalProvider", in questo modo:

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

// function to open modal
$scope.check = function(){
modalProvider.openPopupModal();
}