AngularJS将字符串从一个控制器传递到另一个控制器

时间:2017-09-20 03:41:12

标签: angularjs

我是棱角分明的新手,我面临一个奇怪的问题: 无法将字符串从一个控制器传递到另一个控制器。

我正在尝试一些事情,包括使用JQuery设置数据属性,这对我来说没有Angular。 然后通过"服务"来实现它。 它对我不起作用。可能我混淆了一些东西。

任何人都可以提供清晰简单的演示。

提前致谢!

2 个答案:

答案 0 :(得分:0)

见下面的代码。您需要编写一个共享服务来保存您的城市名称(请参阅我在演示中创建的服务),然后您需要将城市保存在共享服务中,无论您从服务器获取城市。

在另一个控制器中,您需要从共享服务中获取该城市名称。



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="angular.js@*" data-semver="2.0.0" src="https://code.angularjs.org/1.4.8/angular.js
"></script>
    <script data-require="jquery@*" 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>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

这对我亲爱的专家来说是有用的。

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

...

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

我几乎整天都在尝试服务,工厂和所有模式......