使用另一个控制器angularJS的变量与离子

时间:2016-06-19 12:10:42

标签: javascript angularjs

我想从另一个控制器访问任何身体帮助

的变量

我的代码

app.controller('MapCtrl',function($scope, $state, $cordovaGeolocation) {
    $scope.search_item = function($event,item){
        console.log(item);
        var lat = item.lat;
        var lng = item.lng;      
    }
});

app.controller("homeCtrl", function($scope,$http, $filter ){

});

1 个答案:

答案 0 :(得分:0)

您可以设置一个“分享”的服务。两个控制器之间的变量。

在app /目录中创建一个文件:services.js(app.js所在的位置)

   angular.module('app.services', [])

     .service('var_transfer_service', function(){
          var test_var;              

          return {
             getVar: function () {
                return test_var;
           },
             setVar: function( _test_var ) {
                test_var = _test_var;
            }
        }
   })

现在将此服务注入需要变量共享的控制器:

app.controller('MapCtrl',function($scope, $state, $cordovaGeolocation, var_transfer_service) {
  $scope.search_item = function($event,item){
    console.log(item);
    var lat = item.lat;
    var lng = item.lng;

    var_transfer_service.setVar(lat);       
  }
});

app.controller("homeCtrl", function($scope,$http, $filter, var_transfer_service ){
   var transferred_var = var_transfer_service.getVar();    
   // transferred_var will now equal 'lat' from the other controller
});

您可以进一步修改services.js中的函数定义和控制器中的函数调用,以容纳更多变量。

确保还将services.js模块添加到您的应用中:

angular.module('app', ['ionic', 'app.controllers', 'app.services'])