0
假设我有一个包含2列(用户标识,用户名)的表。我有两个输入文本字段,它们在更改时调用方法filter()来过滤显示在表中的数据。在AngularJS中,我将如何识别哪个元素称为filter()方法。我也想访问调用元素的数据属性。我只是从Angular开始,任何帮助都会很棒!在AngularJS中改变两个输入调用相同方法的方法的确定方法
我的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");
});
所以它永远文本框的变化,我可以在那个特定的文本框中的值。
谢谢。我试图根据在输入框中输入的内容来过滤表中的值。 – user1429007 2013-04-11 04:16:38
听起来像你只需要'ngRepeat' w /'过滤器',不是吗? http://jsfiddle.net/langdonx/jPH74/ – Langdon 2013-04-11 04:22:19
是的。我实际上使用ngRepeat,但没有考虑过滤器。我们是否有类似的方法来根据字段中的值对数据进行排序? – user1429007 2013-04-11 04:27:56