2017-05-26 4 views
0

Hallo ich bin neu bei angularjs und erkunde die Funktionalität von $ uibmodal. Ich war in der Lage, $ uibmodal.open zu bedienen, aber mit einem Fehler, der auftritt, den ich nicht verstehe. Mein $ uibmodal.close funktioniert im Moment nicht und wenn ich $ uibmodal.submit verwende, setzt er die Seite zurück, anstatt sie zu meinem aktuellen Array hinzuzufügen. Wenn jemand mir einen Tipp geben kann, um die richtige Funktionalität zu bekommen, wäre das großartig. Vielen Dank. Here is my Github repository

Antwort

0

Sie können auch mit versuchen, diese

modalInstance.close('resetModel'); 
2

Zuerst ist , wie man diese Seite benutzt. Man sollte in der Lage sein, die Frage zu verstehen, ohne zu externen Quellen zu gehen. Die Verbindung zu einem Github Repo ist großartig, aber Sie müssen hier auch Code schreiben. Vor allem, weil sich das Repo wahrscheinlich ändert und was ist diese Frage dann für jemanden?

Zweitens bin ich nicht sicher, dass es so etwas wie ein $ uibModal.submit() gibt, also müssen Sie uns sagen, woher Sie das haben. Aber ich vermute, dass Sie etwas wie eine Formularübermittlung auslösen, die die Seite standardmäßig neu lädt; In angular möchten Sie fast nie die Seite neu laden.

Als nächstes ist dies:

modal.close = function() { 
    $uibModal.close(/* Something missing here */); 
}; 

Sie wahrscheinlich hier etwas zurückgeben möchten, wenn Sie die modale beeinflussen etwas außerhalb des modalen wollen. Aus der Dokumentation:{$value: myResult}

Und schließlich:

var mobalInstance = $uibModal.open({ 
    templateUrl : '/templates/modals.html', 
    controller: 'ModalCtrl', 
    controllerAs: 'modal' 
}); 

Das ist gut und alle zur Erzeugung eines Modalinstanz, aber Sie brauchen etwas das zu handhaben Das Ergebnis muss in diesem Format übergeben werden Antwort (der Wert, der beim Schließen zurückgegeben wird). In modalInstance.result finden Sie ein Versprechen, dh Sie können darauf zugreifen, indem Sie .then(successHandler, errorHandler) verwenden. Es wird aufgerufen, wenn das Modal schließt. Zum Beispiel (in den Dokumenten):

modalInstance.result.then(function (selectedItem) { 
    $ctrl.selected = selectedItem; 
}, function() { 
    $log.info('Modal dismissed at: ' + new Date()); 
}); 

selectedItem Hier ist der Wert von den modalen zurückgegeben und $ctrl.selected ist eine Eigenschaft, in der Steuerung, die das modal geöffnet.

+0

Es gibt noch andere Fragen, die ich mit dem Code haben auch. Ich denke, dass ein 'ModalController' und ein' ModalInstanceController' verwirrend sind, um es gelinde auszudrücken. Beachten Sie die angular.ui-Demo, die sie 'ModalDemoController' verwenden. Das heißt, Sie sind besser dran, wenn Sie 'PageCtrl' oder' SomesectionCtrl' nennen oder Ihre 'RoomCtrl' verwenden. – ippi

+0

Danke für die Eingabe. Dies ist eine Aufgabe von der Schule, die ich seit ungefähr 3 Wochen festhalte. Es gibt so viele verschiedene Teile des Projekts, von denen ich nicht wusste, wie man alles zusammenfasst, ohne mit einem Zweig des Projekts zu verlinken. Ich habe noch nie mit all diesen beweglichen Teilen gearbeitet, also sollte ich beim nächsten Mal alle Dateien mit der Seite verknüpfen? Ich wusste nicht, ob ich das Projekt verlinken sollte oder nur Teile in die Frage einfließen lassen sollte, weil ich sicherstellen wollte, dass die Leute sehen, was ich versuche zu tun. –

+0

Fügen Sie die Dinge hinzu, die Ihrer Meinung nach relevant sind, und bearbeiten Sie sie weiter, wenn jemand danach fragt. Viel Glück mit Ihrem Projekt! – ippi