2016-07-24 8 views
0

Ich habe 2 Ansichten, hat jeder einen Controller, ich möchte Daten von Ansicht1 senden View2 wenn ich auf der „BL“ Button klicken:Aktien Daten zwischen zwei Ansichten in AngularJS

das ist Ansicht1: enter image description here

und das ist View2: enter image description here

ich habe versucht, die Ereignisse zu verwenden my try, aber die Controller2 wird nur aktiviert, wenn ich auf der „BL“ Button klicken ich dachte, einen Dienst zu verwenden, um Daten zu senden von Controller1 zu Controller2, aber Ich denke, es ist nicht mein Fall so bitte ist es eine Hilfe, wie kann ich Daten von Ansicht1 dank View2 senden

Edit: das ist mein zweiter Versuch:

Ansicht1/controller1:

$scope.BLButton = function(){ 


    $scope.foo = Service.foo; 
    Service.foo = '85'; 

    } 
    .factory('Service', function() { 
            var Service = { 
             foo: '85' 
             }; 
             return Service; 
            }); 

View2/Controller2:

//this method is called to display the data in the input Text from a web Service 
$scope.parentmethod = function() { 
    //traitement 
$scope.foo = Service.foo; 
.... 
} 

das Problem mit meinem Code ist, dass die Methode "parentmethod" von Cont roleller2 wird niemals aufgerufen, wenn ich auf die Schaltfläche "BL" klicke

+2

Es gibt mehrere Möglichkeiten, dies zu erreichen (Shared Service, Komponenten). Poste deinen Code für bessere Hilfe. – dfsq

+3

Das erste, was Sie im Allgemeinen betrachten möchten, ist die Verwendung eines Dienstes, um Daten über Teile der App zu teilen. Ihr Bild ist von geringem Wert, bitte geben Sie [mcve] – charlietfl

+0

Ich habe meinen Beitrag aktualisiert Sir – user3821206

Antwort

1

Der beste Ansatz besteht darin, alle Ihre Geschäftslogik (BL) in einen Dienst zu verschieben, der den App-Status erhält. Sie versuchen, Controller auf eine Art zu missbrauchen, weil ihr einziges Ziel ist, Präsentation und BL zu kleben und den App-Status in keiner Form zu halten. Das Problem ist, dass Controller bei Änderung der Ansicht erstellt und zerstört werden, sodass sie nicht als Statusinhaber passen. In Ihrem Fall können Sie Daten in einem Dienst speichern (der bei jeder Anwendung instanziiert und aktiv ist) und dann in einer anderen Ansicht im Controller abrufen.

Verwandte Themen