javascript - 通过依赖注入(inject)在 Controller 之间传递 $routeParams

标签 javascript angularjs controller

我想知道如何将此 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/

相关文章:

javascript - 使用 ng-click 更改 JSON 调用

javascript - RESTful API 调用未更新本地数组?

php - CSV 或 Mysql 用于静态数据?

javascript - 用 Javascript 将军事时间替换为正常时间

Android 的 Javascript 引擎选项(非 WebKit)

rest - yii2 rest api 实现自定义操作

templates - Grails-如何使用选定的模板渲染 View ?

c# - 我可以接受 HttpPostedFileBase 作为 ViewModel 的一部分吗

javascript - 为什么我的 jQuery 函数只打开一个链接而不打开代码中列出的其他链接?

javascript - AngularJS。使用不同的数据初始化 Controller