2016-05-24 11 views
0

Ich muss Daten von modal zu einer anderen Seite übergeben. Könnten Sie mir bitte helfen, diese Aufgabe zu erfüllen?Daten von modal zu einer anderen Seite in angularjs übergeben

$scope.productdetails = function (size,selectedproduct) 
    {  
    var modalInstance = $uibModal.open({   
    templateUrl: 'ProductDetails.html',    
    controller: function ($scope, $uibModalInstance, product) { 
     $scope.product = product; 

     $scope.buynow = function (path) { 
      $uibModalInstance.close($scope.product); 
      $location.path(path); // Need to pass $scope.product to the new page 
     }; 

     $scope.cancel = function() { 
      $uibModalInstance.dismiss('cancel'); 
     }; 
    }, 
    size: size, 
    resolve: { 
     product: function() { 
      return selectedproduct; 
     } 
    } 
});   
+0

einen Dienst verwenden dta zwischen den verschiedenen Teilen der App – charlietfl

+0

Brian Hann beschreibt eine Methode auf seiner Website zu teilen, die ich mich fast ausschließlich verwenden: http://brianhann.com/pass-data-to-a- Ui-Bootstrap-Modal-ohne-Bereich. – Brian

Antwort

1

Seien Sie sicher, dass Sie die Dokumentation auf $uibModal zu lesen: https://github.com/angular-ui/bootstrap/tree/master/src/modal/docs

die open() Methode kehrt ein Objekt mit einigen nützlichen Sachen drin. Momentan machst du nichts mit dem Objekt, aber das ist die Magie.

Um Daten an die Steuerung übergeben, die die modale geöffnet, verwenden Sie die modalInstance.result Versprechen wie folgt aus:

modalInstance.result.then(function(data) { /*... do something with the data*/ }); 

Sobald das eingerichtet ist, können Sie die $close() Funktion, dass diese modal Bibliothek Plätze auf dem Umfang nutzen, um Lösen Sie das Versprechen result.

var data = {info: 'information to be returned to the parent controller'}; 
$scope.$close(data); 
+0

Ich habe geschrieben, modalInstance.result.then (Funktion (Produkt) { $ scope.selectedProduct = Produkt; $ location.path ('Warenkorb'); }); Wie soll ich das Produkt an den neuen Standortpfad übergeben? – Rubel

+1

Da Sie einen Einkaufswagen implementieren, sollten Sie die Auswahl (en) des Benutzers in einem Cookie speichern und diesen Cookie dann auf der Einkaufswagenseite abrufen. Cookies werden zu diesem Zweck auf fast jeder E-Commerce-Website verwendet. – HankScorpio

Verwandte Themen