如何使用AngularJS初始过滤客户端上的数据?

时间:2017-01-23 20:14:23

标签: angularjs

我是Angular的新手,最近刚刚在MVC网站上学习了使用Angular的课程。我现在正试图采取培训中显示的内容,并尝试在我已经完成的小型网站中实施它。我有一个要求,培训没有解决,我不确定如何包含在我的代码中。

这是一家小公司在留言时跟踪客户来电的网站。记录可以是多种状态之一,如打开,关闭,正在进行,需要回拨等等。

当页面启动时,我调用一个返回所有记录的Web服务。但是,我希望它最初通过“OPEN”进行过滤,并显示直到从下拉列表中选择另一个过滤器。因此默认状态为“1”或“OPEN”。

页面加载后过滤记录的好方法是什么?我假设我需要某种属性,如vm.FilterId 我最初会设置为“1”然后下拉列表会改变该值吗?

我如何过滤客户端上的数据?

这是我的angualr文件中的API调用,名为“call.controller.js”。

function callList(){
    dataService.get("/api/Call")
    .then(function(result) { 
        vm.calls = result.data;
    }, 
    function (error) {
        handleException(error)
    });
}

这是我在表格标签内放置标签的ng-repeat。我假设这可能是我尝试进行某种过滤的地方吗?

<tr ng-repeat="call in vm.calls">

更新

根据我的理解,我应该可以做这样的事情来初步过滤?这没有任何回报。状态字段是整数。

<tr ng-repeat="call in vm.calls | filter:{ status: 1}">

我可以看到值来自API。 enter image description here

1 个答案:

答案 0 :(得分:1)

您可以使用管道过滤ng-repeat指令。

选项1:

 <div ng-repeat="call in vm.calls | filter:{ open: value}">

选项2:

Value source: <input type="text" ng-model="search.open">
<div ng-repeat="product in products | filter:open"> 

您可以查看例如here