假设我有一个包含 2 列(用户 ID、用户名)的表。我有两个输入文本字段,它们在更改时调用一个方法说 filter() 来过滤表中显示的数据。在 AngularJS 中,我将如何识别哪个元素称为 filter() 方法。我也想访问调用元素的数据属性。我刚从 Angular 开始,任何帮助都会很棒!
我的 HTML
<div ng-controller="MyCtrl">
<table><thead>
<tr><th><input type="text" class="filter" ng-model="jobid" ng-change="filter()" data-filterby="jobid"/></th>
<th><input type="text" class="filter" ng-model="name" ng-change="filter()" data-filterby="name"/></th></tr>
</thead></table>
</div>
我的 AngularJS 控制器
function MyCtrl($scope) {
$scope.filter = function() {
$item = angular.element(this);
$item.val();
/* ^^ This doesnt work - Throws an error*/
}
我知道我可以很容易地为每个文本框设置单独的函数名称,但我希望有一个通用函数来处理这个问题,以获得更简单的代码。如果是 jquery 我可以做这样的事情
$(".filter").keyup(function() {
var text = $(this).val();
var filterby = $(this).attr("data-filterby");
});
因此,无论哪个文本框发生变化,我都可以获取该特定文本框中的值。