2016-05-18 7 views
3

Ich bin neu in Angular und versuchen, ein Modal zu implementieren. Problem beim Schließen/Verwerfen des Modales - wenn ich auf Abbrechen klicke, passiert nichts. Hier ist der Controller-Code:Angular Modal - Schließen/Verwerfen Modal

angular.module('navApp') 
// Passing the $modal to controller as dependency 
.controller('HomeCtrl', ['$scope', '$uibModal', function 
($scope, $uibModal) { 
$scope.title = "Hello, Angm-Generator!"; 
$scope.open = function() { 
var modalInstance = $uibModal.open({ 
templateUrl: 'myModalContent.html', 
controller: 'ModalCtrl' 
}); 
}; 
}]) 

.controller('ModalCtrl', function ($scope, $uibModalInstance) { 
// Added some content to Modal using $scope 
$scope.content = "ModalCtrl, Yeah!" 
// Add cancel button 
$scope.cancel = function() { 
$uibModalInstance.dismiss('cancel'); 
}; 
}) 

und hier ist die Vorlage Blick auf die tatsächlichen modal

<!-- Modal Script --> 
<script type="text/ng-template" id="myModalContent.html"> 
<div class="modal-header"> 
<button type="button" class="close" datadismiss=" 
modal" aria-hidden="true">&times;</button> 
<h3 class="modal-title">Hello from Modal!</h3> 
</div> 
<div class="modal-body"> 
Modal Content from: <b>{{ content }}</b> 
</div> 
<div class="modal-footer"> 
<button class="btn btn-danger" ngclick=" 
cancel()">Cancel</button> 
</div> 
</script> 
</div> 

Auch das Kreuz rechts oben modal klicken nicht die modale schließen. Irgendwelche Ideen? Danke :)

+4

'ng-click =" $ ablehnen() "' ist alles was Sie brauchen – Phil

+0

das funktioniert nicht, sagt der Fehler. $ Ablehnen() ist keine Funktion. Nur Abbrechen funktioniert für mich –

+0

Tut mir leid, es funktioniert tatsächlich :)) Aber das Klicken auf das Kreuz in der oberen rechten Ecke immer noch nicht schließen das modale. –

Antwort

1

Sollte nicht ng-click = "cancel()" anstelle von ngclick sein?

Außerdem glaube ich, nicht der Umfang an den Controller gebunden ist, ich habe nicht getestet, aber ich glaube, dass Sie ein paar mehr Optionen benötigen:

var modalInstance = $uibModal.open({ 
    templateUrl: 'myModalContent.html', 
    controller: 'ModalCtrl', 
    controllerAs: '$mCtrl', 
    bindToController: true 
}); 

Und dann einfach Ihre Vorlage aktualisieren:

ng-click="$mCtrl.cancel()" 
+0

Sie haben Recht mit dem 'ng-Klick', aber die Controller-Deklaration und Verwendung von $ scope ist in Ordnung. – Haymaker87

+0

Danke allen, ng-click macht es. Aber das Hinzufügen der anderen Optionen scheint zu funktionieren. Lustig ist, dass das Modal immer noch nicht schließt, wenn ich auf das Kreuz in der oberen rechten Ecke klicke. –

0

Wenn Sie das Modell schließen möchten, auf Klick auf die Querstange dann können Sie

<button type="button" class="close" data-dismiss="modal">&times;</button> 

Dies wird verwenden Schaltfläche sein, und data-dismiss="modal" wird Ihr Modal schließen.