2016-12-22 2 views
-2

Ich bin neu zu eckigen js und seine Dienstleistungen so bitte mit dieser grundlegenden Frage. Bitte lesen Sie den Kommentar innerhalb des Codes, um zu verstehen, was ich brauche.Übergeben von Variablen zwischen Controllern in Winkel js

.controller('ctrlr1', function($scope, myservice) { 
    var a = "abc";  
}) 
.controller('ctrl2', function ($scope, myservice) { 
     // how to get value of a 
}) 
.service('myservice', function() { 
     //what goes here? 
}); 

Vielen Dank im Voraus

+2

Wie Daten zwischen den Controllern übertragen? Schauen Sie sich http://stackoverflow.com/questions/21919962/share-data-between-angularjs-controllers – Nitheesh

Antwort

1

Grundfreigabe durch angular Dienste

.controller('ctrlr1', function($scope, myservice) { 
    var a = "abc"; 
    var b = 123; 
    myservice.myData = a; 
    myservice.myDataB = b; 
    }) 
    .controller('ctrl2', function ($scope, myservice) { 
    // how to get value of a 
    console.log(myservice.myData); 
    console.log(myservice.myDataB); 
    }) 
    .service('myservice', function() { 
    //what goes here? 
    this.myData = ''; 
    this.myDataB = 0; 
    }); 
+0

an, wenn ich eine andere Variable in 'ctrlr1' sage' var b = 123'. Wie man beide Variablen übergibt und auf den zweiten Controller zugreift – sam

+0

Wie die erste Variable, die wir in 'myData' gespeichert haben, sagen wir eine neue Eigenschaft in' myservice' 'myDataB'. Ich werde meine Antwort bearbeiten. –

+0

Ich habe es so gemacht 'myservice.myData = {va: a, vb: b}' und dann als 'myservice.myData.va' oder' myservice.myData.vb' abgerufen. – sam

0

Sie myservice verwenden können, weil sie die effiziente Art und Weise, aber nicht $ brodcast verwenden. Hier

ein Beispiel: -

var testModule = angular.module('testmodule', []); 

testModule 
    .controller('QuestionsStatusController1', 
    ['$rootScope', '$scope', 'myservice', 
    function ($rootScope, $scope, myservice) { 
     $scope.myservice = myservice; 
    }]); 

testModule 
    .controller('QuestionsStatusController2', 
    ['$rootScope', '$scope', 'myservice', 
    function ($rootScope, $scope, myservice) { 
     $scope.myservice = myservice; 
    }]); 

testModule 
    .service('myservice', function() { 
     this.xxx = "yyy"; 
    }); 
Verwandte Themen