angularjs - 将数据从 Controller 传递到 $uibModal Controller angularjs

标签 angularjs jakarta-ee

我有一个 HTML 页面,其中有一个按钮“alta”,当我单击该按钮时,它会显示另一个模板作为弹出窗口,在此弹出窗口中,我需要第一页字段的值。

这是第一个 Controller 中按钮“alta”的功能:

        function altaFiltro(){          
        //pop up
        alert(vm.filtros.codigo);
        $uibModal.open({
            templateUrl : 'app/entities/peticion/altaFiltro.html',
            size : 'md', // sm, md, lg
            controller: "FiltrosCtrl",
            controllerAs : 'fil',resolve: {
                filtrosVm : function() { 
                     return vm.filtros.codigo
                }
            }
        });
    }

在我的模板模型的 Controller “FiltrosCtrl”中,我有:

    angular.module('mecenzApp').controller('FiltrosCtrl', FiltrosCtrl);

FiltrosCtrl.$inject = [ '$scope','$uibModalInstance','Filtros'];

function FiltrosCtrl($scope, $uibModalInstance,Filtros, filtrosVm) {

    var fil = this;
    fil.cancelar = cancelar;
    function cancelar() {   
        $uibModalInstance.close();
          };

    fil.guardar = guardar;
    function guardar(){
        alert(filtrosVm);
        if(fil.filtros.nombre!=null){
            Filtros.update(fil.filtros);
            $uibModalInstance.close();
        }           
    }
}

所以我想获取vm.filtros.codigo值,但它给了我一个错误,说它没有定义,这是正常的,因为它没有在此子 Controller 中定义(如果我可以这样调用它)

最佳答案

您可以使用 resolve 属性来解决此问题。

        $uibModal.open({
            templateUrl : 'app/entities/peticion/altaFiltro.html',
            size : 'md', // sm, md, lg
            controller: "FiltrosCtrl",
            controllerAs : 'fil',
            resolve: {
                filtrosVm : function() { 
                     return vm.filtros.codigo
                }
            }

        });

然后 filtrosVm 将显示为 Modals Controller 的依赖项。

function FiltrosCtrl($scope, $uibModalInstance,Filtros, filtrosVm) {

    var fil = this;
    fil.cancelar = cancelar;
    function cancelar() {   
        $uibModalInstance.close();
          };

    fil.guardar = guardar;
    function guardar(){
        alert(filtrosVm);
        if(fil.filtros.nombre!=null){
            Filtros.update(fil.filtros);
            $uibModalInstance.close();
        }           
    }
}

关于angularjs - 将数据从 Controller 传递到 $uibModal Controller angularjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41467127/

相关文章:

javascript - 如何使用 Ionic 从外部 JSON 获取数据?

jsf - 在primefaces数据表中排序不起作用

java - 如何验证对象列表是否为空?

eclipse - 获得了不是 ReferenceType 成员的 RefenceType 的 MethodID

java - 实体之间的多对多关系问题

asp.net-mvc - 混合 Angular 和 ASP.NET MVC/Web api?

javascript - 在上下文菜单项单击上显示侧边栏/弹出窗口的最佳方式是什么?

javascript - Angular JS : Show/Close div based on select option without using controller or model

javascript - 如何在 Angular-js 指令中定义一个函数

java - 如何使用JSP/Servlet将文件上传到服务器?