在ng-click里面的jQuery传递html元素引用

注意:不是上述副本。 上面是访问clicked元素,这个问题是关于访问不同的元素。

如何在ng-click中将我的html文档中的元素(不是单击的元素)传递给Angular范围方法?

示例: http : //jsfiddle.net/Ld8Zs/2/

HTML:

  

JavaScript的:

 var app = angular.module('myApp', []); app.controller('myController', function($scope) { $scope.clickHandler = function(el) { alert(typeof el); // real code work with element---set focus } }); 

在此示例中,当您单击使用onclick的第二个按钮时,您将获得“对象”。 当您单击通过ng-click的第一个按钮时,您将获得“未定义”。

我试图避免将jQuery代码本身移动到控制器或一般的Angular中以保持可测试性。

编辑:

我的原始示例使用jQuery查找第一个

JavaScript的:

 var app = angular.module('myApp', []); app.controller('myController', function($scope, $element) { $scope.input = $('input', $element); $scope.clickHandler = function(el) { alert(typeof el); } }); 

演示FIDDLE

[编辑]

更好的选择

我不确定为什么要将视图元素传递给单击处理程序。 也许有更好的方法 – 例如; 传递输入元素绑定的模型。

HTML:

  

JavaScript的:

 app.controller('myController', function($scope, $element) { $scope.name = 'John'; $scope.clickHandler = function(model) { if (model == 'Tim') { alert("No!!! You're John!"); $scope.name = 'John'; } } }); 

通过传递模型并操纵绑定到输入的模型,视图(输入元素)会自动更新。 这更有棱角,更少jquery。

Interesting Posts