Javascript 将数据从jQuery发送到AngularJS的控制器

Javascript 将数据从jQuery发送到AngularJS的控制器,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我想把jQuery生成的数据传递给AngularJS的控制器。有什么办法可以做到这一点吗 <textarea ng-click="showSelectedText(selection.text)" name="editor1" id="editor1" cols="118" rows="35"> AngularJS控制器: $scope.showSelectedText = function(fromUI) { alert("Text is : "+ fro

我想把jQuery生成的数据传递给AngularJS的控制器。有什么办法可以做到这一点吗

 <textarea  ng-click="showSelectedText(selection.text)" name="editor1" id="editor1" cols="118" rows="35">
AngularJS控制器:

 $scope.showSelectedText = function(fromUI) {

        alert("Text is : "+ fromUI);
    };

你需要做一些改变。比如给定义控制器的元素指定一个id,比如

<div id="demoElement" ng-app='MyModule' ng-controller="MyController">
</div>
现在您可以从文本区域中删除ng click=“showSelectedText(selection.text)”,并使用下面的行从jquery代码中调用angular的函数

angular.element(document.getElementById('demoElement')).scope().showSelectedText(jQueryObjectOfSelectedText);
您可以从获取所选文本的jQuery代码中调用此函数,如

  $( "#editor1" ).select(function() {

                    var selection = getSelected()
                    if(selection)
                    {
 angular.element(document.getElementById('demoElement')).scope().showSelectedText(selection);
                    }

                    });  

                    function getSelected() {
                        if (window.getSelection) {
                            return window.getSelection();
                        }
                        else if (document.getSelection) {
                            return document.getSelection();
                        }
                        else {
                            var selection = document.selection && document.selection.createRange();
                            if (selection.text) {
                                return selection.text;
                            }
                            return false;
                        }
                        return false;
                }  

您只需要在控制器中传递textarea的文本吗?从文本区域,我只需要将选中/突出显示的文本{而不是整个文本}传递到AngularJsconsole的控制器,就会显示此错误“Uncaught TypeError:无法读取未定义的属性'showSelectedText':请确保在angular.element()中传递相同的元素)您的控制器已将.with错误定义为“Uncaught TypeError:document.getElementById(…).scope不是函数”请检查此URL谢谢它确实帮助我解决了此问题
angular.element(document.getElementById('demoElement')).scope().showSelectedText(jQueryObjectOfSelectedText);
  $( "#editor1" ).select(function() {

                    var selection = getSelected()
                    if(selection)
                    {
 angular.element(document.getElementById('demoElement')).scope().showSelectedText(selection);
                    }

                    });  

                    function getSelected() {
                        if (window.getSelection) {
                            return window.getSelection();
                        }
                        else if (document.getSelection) {
                            return document.getSelection();
                        }
                        else {
                            var selection = document.selection && document.selection.createRange();
                            if (selection.text) {
                                return selection.text;
                            }
                            return false;
                        }
                        return false;
                }