您可以设置一个在两个控制器之间“共享”变量的服务。
在app/目录(app.js所在的位置)下创建一个文件:services.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'])