2016-07-07 2 views
0

У меня следующие проблемы:Почему моя страница перезагружается после model.close()?

1- Когда моя модель открыта, и я нажимаю «отменить», чтобы закрыть ее, она перезагружает страницу.

2- Когда я нажимаю «ОК», мой запрос «DELETE» не отправляется на сервер (он ничего не получает), и страница перезагружается. Я также не перенаправлен на страницу, на которую я должен пойти.

HTML

<div> 
    <input type="button" class="btn btn-primary" ng-click="suppr()" value="ok"/> 
    <input type="button" class="btn btn-default" ng-click="annulSupp()" value="cancel" /> 
    </div> 

файле

расслоение плотной
(function() { 
    'use strict'; 

    var progress = angular.module('demret.progress', ['ui.bootstrap.modal']); 


    progress.directive('progressDem', function() { 
     return { 
      restrict : 'E', 
      templateUrl : "progress/progress.html", 
      controller : [ '$scope', '$http', 'Demande', '$window', '$modal', function($scope, $http, Demande, $window, $modal) { 
       // TODO 

       $scope.supprimerDemande = function() { 

        var urlSetDem = cfg.urlDDRRest + 'demande/' + Demande.get().id; 
        var config = { 
         method : 'DELETE', 
         url : urlSetDem, 
         jsonExpected : true 
        }; 
        $http(config).then(function(http) { 
         $window.location.href = cfg.urlPortail; 
        })['catch'](function(http) { 
         $scope.errT= 'Une erreur technique'; 
        })['finally'](function() { 
        }); 
       } 

       // ========================================== 
       // open fenetre modal 
       // ========================================== 
       $scope.modalSuppressionDem = function(size) { 
        // déclaration de la fenetre 
        var modalInstance = $modal.open({ 
         animation : true, 
         templateUrl : 'progress/suppression-modal.html', 
         controller : 'ModalSuppressionDem', 
         size : size, 
         backdrop : 'static', 
         resolve : { 
          functionSupp : function() { 
           return $scope.supprimerDemande; 
          } 
         } 
        }); 
        modalInstance.result.then(function() { 
         // close 
        }); 
       }; 

      } ] 
     } 
    }); 


    // Controleur de la fenetre modale 
    progress.controller('ModalSuppressionDem', [ '$scope', '$modalInstance', 'functionSupp', function($scope, $modalInstance, functionSupp) { 
     $scope.suppr = function() { 
      functionSupp(); 
      $modalInstance.close(); 
     }; 
     $scope.annulSupp = function() { 
      $modalInstance.close(); 
     }; 
    } ]); 

})(); 

config.js

(function() { 
    'use strict'; 
    window.cfg = { 

     urlDDRRest : '/TOTO-rs/api/', 
     urlPortail : '/TOTO/', 

    }; 
})(); 

Кто-нибудь знает, почему это Happe нс?

Спасибо заранее!

+0

Эта логика немного странно, и я чувствую запах ползучести. но почему бы не использовать 'data-reject =" modal "' в HTML вместо функции close? – Pogrindis

+0

im не эксперт в угловой :(, дайте мне решение или пример tks –

ответ

1

Попробуйте это:

заменить

<input type="button" class="btn btn-default" ng-click="annulSupp()" value="cancel" /> 

с

<input type="button" class="btn btn-default" ng-click="annulSupp($event)" value="cancel" /> 

и заменить $ scope.annulSupp() с кодом ниже

$scope.annulSupp = function(event) { 
     event.preventDefault(); 
     $modalInstance.close(); 
}; 
+0

im не эксперт в angularjs: где я его добавляю? Я должен заменить свой код? –

+0

обновленный ответ – NNR

+0

это нормально для отменить его работу, решение для вторая проблема() Кнопка OK tks –

Смежные вопросы