本文介绍了将另一个控制器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一起使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!