如何将变量从 jQuery 传递到 AngularJs 函数

Posted

技术标签:

【中文标题】如何将变量从 jQuery 传递到 AngularJs 函数【英文标题】:How to pass a variable from jQuery to AngularJs function 【发布时间】:2018-04-07 11:19:02 【问题描述】:

我的控制器上有这个功能

当我单击 image.svg 的一部分时,我使用此函数将 svg 路径的 id 保存在一个数组中

$(document).ready(function()
        var arrayCuerpo=[];
        $('.SaveBody').on("click", function() 

            var idCuerpo=jQuery(this).attr("id");
            var parteCuerpo=CambiarCuerpo(idCuerpo);

            if( jQuery.inArray(parteCuerpo,arrayCuerpo) == -1)//No existe
                $('path#'+idCuerpo).css( fill: "#4C9141",stroke: "#4C9141" );
                arrayCuerpo.push(parteCuerpo);
                //console.log("if");
                console.log(arrayCuerpo);
            else//existe
                $('path#'+idCuerpo).css( fill: "#9e9e9e",stroke: "#9e9e9e" );
                arrayCuerpo.removeItem(parteCuerpo);

               // console.log("else");
                console.log(arrayCuerpo);
                $scope.arrayCuerpo =arrayCuerpo;
            
        );

    );

我想访问数组:arrayCuerpo 在同一个控制器上的这个函数上:

    $scope.SendForm1 = function()

        console.log($scope.arrayCuerpo);
         //This return undefined
    

SendForm1 is called when I put my Send Button Form

Could u help me to pass that array in that Function pls? 

编辑解决方案:

I wasnt calling the ng-controlelr on the svg-image
For pass the variable i just created a service .factory

app.factory('yourService', function () 
    var array = [];

    return 
        setData: function setData(data) 
            array = data;
        ,

        getData: function getData() 
            return array;
        
    ;
);

有了这个我可以调用函数上的服务:

yourService.setData($scope.arrayCuerpo);

然后我得到数据:

$scope.Array = yourService.getData();

【问题讨论】:

我想建议在元素上使用 ng-click 而不是在 jquery 上使用 on 'click' 来触发 'clicked' 事件。 您可以使用 jquery 在 SendForm1 函数范围代码上进行厄运操作。 我忘了说我在 svg 路径上使用那个类 (SaveBody) .. ( 我明白了。因此,您可以使用的一种选择是使用全局 javascript 变量(不推荐这样做)。但是如果您想将 svg 标签与 angularjs ng-click 集成,可能此链接可以帮助您***.com/a/29868537/5129606 ng-click 不起作用 :( ,当我单击 img 的一部分时,它什么也不做,在该函数内没有警报或 console.log 是我的错,在 svg-image 上没有调用 ng-controller! 【参考方案1】:

你可以这样做:

$scope.SendForm1 = function(arrayCuerpo)
$scope.arrayCuerpo=arrayCuerpo;
    console.log(arrayCuerpo);
     //This return undefined

【讨论】:

这个函数怎么称呼你? SendForm1 在我放置发送按钮表单时被调用 这样调用函数SendForm1(Your Array);

以上是关于如何将变量从 jQuery 传递到 AngularJs 函数的主要内容,如果未能解决你的问题,请参考以下文章

如何将变量从 jQuery draggable 传递到 droppable

将数据从一个组件传递到另一个 Angular 2 时的服务变量

Angular5:将变量从一个组件传递到另一个打字稿文件

如何将多个变量传递给 Angular 2 中的组件?

如何将 node.js 服务器变量传递到我的 angular/html 视图中?

将数据从一个函数传递到同一个 Angular 组件中的另一个函数