我是angularjs平台的新手,我面临解决我的雇主给出的小任务的问题。我希望有人可以帮助我。
我有一组员工表,我需要在ng-option中使用比较运算符,然后在数字字段中输入数字以获得结果。 (例如,如果用户选择大于ng-option并在文本字段中输入'50',结果应该从数据表中过滤大于50的年龄。任何人都可以帮忙!!
这是我试过的
$scope.operators = [
{
field: "gt"
title: ">"
}
, {
field: "lt"
title: "<"
}
, {
field: "et"
title: "="
}
];
$scope.selected = $scope.operators[0];
app.filter('priceGreaterThan', function () {
return function (input, price) {
var output = [];
if (isNaN(price)) {
output = input;
}
else {
angular.forEach(input, function (item) {
if (item.redemptions > price) {
output.push(item)
}
});
}
return output;
}
});
答案 0 :(得分:1)
您好,您可以使用过滤器完成所有三个操作!请参阅以下示例代码。
你的过滤器工作得很好,我添加了if else
条件来执行不同的操作,还创建了一个用于显示输出的表,所以我没有将价格单独传递给过滤器,而是传递了一个对象({ {1}})然后在过滤器内使用以获取价格和操作员,请检查我的代码并告知我是否有任何问题。
{price: price, operator: selected.field}
&#13;
var app = angular.module('myApp', []);
app.controller('MyController', function MyController($scope) {
$scope.data = [{
name: 1,
redemptions: 100
}, {
name: 1,
redemptions: 150
}, {
name: 1,
redemptions: 200
}, {
name: 1,
redemptions: 50
}, {
name: 1,
redemptions: 1
}, {
name: 1,
redemptions: 10
}]
$scope.operators = [{
field: "gt",
title: ">"
}, {
field: "lt",
title: "<"
}, {
field: "et",
title: "="
}];
$scope.selected = $scope.operators[0];
});
app.filter('priceGreaterThan', function() {
return function(input, params) {
var output = [];
if (isNaN(params.price)) {
output = input;
} else {
angular.forEach(input, function(item) {
if (params.operator === "gt") {
if (item.redemptions > params.price) {
output.push(item);
}
} else if (params.operator === "lt") {
if (item.redemptions < params.price) {
output.push(item);
}
} else {
if (item.redemptions == params.price) {
output.push(item);
}
}
});
}
return output;
}
});
&#13;