Comment fermer Angular-ui modale à partir d'autres contrôleur de

Je suis en utilisant Angulaire de l'interface utilisateur de la pop modale avec une forme en elle. Mon code est:

app.controller('NewCaseModalCtrl', ['$http', '$scope','$modal', function ($http, $scope, $modal, $log) {

  $scope.items = ['item1', 'item2', 'item3'];
  $scope.open = function (size) {

    var modalInstance = $modal.open({
      templateUrl: 'modal-new-case.html',
      controller: 'ModalInstanceCtrl',
      size: size,
      resolve: {
        items: function () {
          return $scope.items;
        }
      }
    });

    modalInstance.result.then(function (selectedItem) {
      $scope.selected = selectedItem;
    }, function () {
    });
  };
}]);

Et puis j'ai un autre contrôleur qui est à l'intérieur de la modal-new-case.html modèle, et je le veux pour exécuter une httpd demande et alors fermer cette modal, c'est ici que code:

    app.controller('CreateCaseFormCtrl', ['$http','$scope', function($http,$scope) {
    $scope.formData = {};
    $scope.processForm = function() {

        $http.post('http://api.com/proj', $scope.formData).
        success(function(data, status, headers, config) {
            console.log("success " + data.id);
        }).
        error(function(data, status, headers, config) {
            console.log("Error " + status + data);
        });
    };

}]);

Ok, donc, à l'intérieur de mon modal-new-case.html modèle, qui est chargé lorsque je fais:

ng-controller="NewCaseModalCtrl"

J'ai ce code HTML:

<div ng-controller="CreateCaseFormCtrl">
    <form ng-submit="processForm()">
                <button class="btn btn-primary" ng-click="processForm()" >OK</button>
                <button class="btn" ng-click="cancel()">Cancel</button>
    </form>
</div>

Donc, si vous voyez ce que je veux vraiment faire est de courir que processForm() de la fonction, et quand elle revient avec un succès, je veux, PUIS appeler la fonction qui va fermer la modale, qui, je crois, "annuler()" serait bien.

Mais je ne sais pas comment le consulter à partir de la CreateCaseFormCtrl contrôleur.

J'apprécie toutes les pensées et de les aider, et je tiens à ajouter que je suis très simples quand il s'agit de Anguleuses, donc si c'est compliqué, rappelez-vous que peut-être je ne suis pas 100% clair sur ce que chaque chose dans Angulaire est comme les usines et autres. Je suppose que je suis en train de dire que je suis très heureux avec un sale solution est assez simple, puisque cela ne va pas être long terme de la production de code de programmation.

  • Est-ce que votre html modal-new-case.html commencer avec <div ng-controller="CreateCaseFormCtrl"> ? si oui, pourquoi ne pas vous venez de fournir modal contrôleur CreateCaseFormCtrl et injecter $modalInstance et l'utilisation de son close(data) méthode.
InformationsquelleAutor Cocorico | 2015-01-09