2017-09-20 2 views
0

Ich bin neu zu eckig und ich habe ein seltsames Problem: nicht in der Lage, String von einem Controller zum anderen zu übergeben.AngularJS übergeben String von einem Controller zum anderen

Ich habe versucht, einige Dinge einschließlich der Einrichtung von Daten-Attribut mit Hilfe von JQuery, die für mich ohne Angular arbeitet. Dann um es durch den "Service" zu implementieren. Es funktioniert nicht für mich. wahrscheinlich habe ich etwas durcheinander gebracht.

Könnte jemand eine klare und einfache Demo zur Verfügung stellen.

Vielen Dank im Voraus!

+0

Hinweis ausgegeben: '$ rootScope' – Sankar

+0

Hallo Sankar konnten Sie pls bieten einige Demo-Code –

+0

kann auf vielfältige Weise erreicht werden. Veröffentlichen Sie einen Code, den Sie bereits ausprobiert haben .. – Rahul

Antwort

0

Siehe unten stehenden Code. Sie müssen einen Freigabedienst schreiben, um den Namen Ihrer Stadt zu speichern (siehe Dienst, den ich in der Demo erstellt habe), und dann müssen Sie die Stadt im Sharing Service speichern, egal wo Sie die Stadt vom Server bekommen.

Und in einem anderen Controller müssen Sie den Namen der Stadt von Shared Service erhalten.

var mainMod = angular.module('MainApp', []); 
 
mainMod.controller('MainCtrl', ['$scope','dataShare', 
 
    function ($scope,dataShare) {   
 
     $scope.city = 'London'; 
 
     $scope.send = function(){ 
 
      dataShare.saveCity($scope.city); 
 
     }; 
 

 
    } 
 
]); 
 
mainMod.controller('MainCtrl2', ['$scope','dataShare', 
 
    function ($scope,dataShare) {   
 
     $scope.getSavedCity = function(){ 
 
      $scope.cityInAnotherController = dataShare.getData(); 
 
     } 
 
     
 
       
 
    } 
 
]); 
 
mainMod.factory('dataShare',function($rootScope){ 
 
    var service = {}; 
 

 
    service.saveCity = function(data){ 
 
     this.data = data; 
 
    }; 
 
    service.getData = function(){ 
 
    return this.data; 
 
    }; 
 
    return service; 
 
});
<!-this is your HTML -> 
 
<html > 
 

 
    <head> 
 
    
 
    <script data-require="[email protected]*" data-semver="2.0.0" src="https://code.angularjs.org/1.4.8/angular.js 
 
"></script> 
 
    <script data-require="[email protected]*" data-semver="2.1.4" src="https://code.jquery.com/jquery-2.1.4.js"></script> 
 
    </head> 
 

 
    <body ng-app='MainApp'> 
 
    <div ng-controller='MainCtrl'> 
 
     <div> 
 
     <h4>Ctrl1</h4> 
 
     <div>{{text}}</div> 
 
     <input type='text' ng-model='city' /> 
 
     <button type='button' ng-click='send();'>Send Data</button> 
 
     {{city}} 
 
     </div> 
 
    </div> 
 
    <div ng-controller='MainCtrl2'> 
 
     <div> 
 
     <h4>Ctrl2</h4> 
 
     <button ng-click="getSavedCity()">Get Saved City </button> 
 
     <div>{{cityInAnotherController}}</div> 
 
     </div> 
 
    </div> 
 
</body> 
 

 
</html>

0

dass das, was für mich liebe Experten arbeitet ..

 function selectedItemChange(item) { 
     document.cookie = item.value; 
     $('#dcity').show(); 
    } 

...

url = '/ api/Land /' + document.cookie ;

Und ich habe fast den ganzen Tag versucht, Service, Fabrik und alle Muster ..

Verwandte Themen