本文介绍了将另一个控制器angularJS的变量与ionic一起使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在任何正文帮助下从另一个控制器访问变量

I want to access variable from another controller any body help

我的代码

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 ){

});

推荐答案

您可以设置一个在两个控制器之间共享"变量的服务.

You can set up a service that 'shares' the variable between the two controllers.

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

Create a file: services.js in the app/ directory (where app.js is located)

   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;
            }
        }
   })

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

Now inject this service into the controllers that need variable sharing:

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中的函数定义以及控制器中的函数调用以容纳更多变量.

You can further modify the function definitions in services.js and function calls in your controllers to accommodate more variables.

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

Make sure to also add the services.js module to your app:

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

这篇关于将另一个控制器angularJS的变量与ionic一起使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-06 04:58