我想知道如何将此 Controller 范围内的变量传递给另一个 Controller 。我想要做的就是获取 vm.search (searchParameters) 并将其传递给另一个 Controller 。
///
(函数(){ '使用严格';
var controllerId = 'GroupMaintenanceBrowsePlansCtrl';
angular.module('myApp').controller(controllerId, ['$scope', 'RenewalGroupDataService', 'logger', Controller]);
function Controller($scope, datacontext, logger) {
logger = logger.forSource(controllerId);
var logError = logger.logError;
var logSuccess = logger.logSuccess;
var logWarning = logger.logWarning;
var vm = {};
$scope.vm = vm;
vm.getPlans = getPlans;
vm.plans;
vm.loadingPlans = false;
vm.pageSize = 100;
function getPlans(searchParameters) {
vm.loadingPlans = true; vm.search = searchParameters;
datacontext.getAssignedPlans(searchParameters, vm.pageSize).then(function (plans) {
vm.plans = plans;
//Compares which columns are being populated for choosing which headings to show
if (vm.search.MchNumber != null
||vm.search.ContractNumber != null
|| vm.search.PlanCode != null)
{
vm.detail = true;
}
if (vm.search.DivisionName != null
|| vm.search.PoolName != null
|| vm.search.SubpoolName != null
|| vm.search.RenewalGroupName != null)
{
vm.detail = false;
}
//Sets values to NULL after every search is performed
vm.search.MchNumber =
vm.search.ContractNumber =
vm.search.PlanCode =
vm.search.DivisionName =
vm.search.PoolName =
vm.search.SubpoolName =
vm.search.RenewalGroupName = null;
}).finally(function () { vm.loadingPlans = false; });
}
};
})();
最佳答案
要使用两个 Controller 之间的值,您可以使用两个 Controller 注入(inject)的服务。
例如
root.service("MyService", function () {});
将MyService
注入(inject)每个 Controller 。然后两个 Controller 将使用相同的实例(因为服务是单例),因此您对该服务所做的任何更改都将被共享。
您还可以将服务放在 $scope
上并使用模板绑定(bind)。但就你而言,我认为这无关紧要。
关于javascript - 通过依赖注入(inject)在 Controller 之间传递 $routeParams,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26061098/