Javascript 将数据从jQuery发送到AngularJS的控制器
我想把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
<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;
}