javascript - 使用 AngularJS Filter 过滤数据。如何迭代对象?

标签 javascript angularjs angularjs-filter

这是我的过滤器:

app.filter('ticketsFilter', function (){
return function (input){
    var data = input;
    console.log("Filtered object:")
    console.log(data);
        return input;
};
});

这是我的标记:

<tr ng-repeat="ticket in tickets | ticketsFilter">
  <p> {{ticket.createdByName}} </p>
  <p> {{ticket.title}} </p>
  <p> {{ticket.toDpt}} </p>
</tr> 

门票对象是对象的对象。在我的数据库中,有 4 个票证实例。而且,当我的票证通过过滤器时,过滤对象将显示为:

[Object, Object, Object, Object]

我不知道如何访问这些对象。我尝试使用 $index ,收到了依赖注入(inject)。尝试使用(for x in input)循环,但console.log只会显示最后一个对象属性。我已经尝试过(我,我

我可以使用以下方法正确访问我的对象属性:

console.log(data[0].attribute); 

但我不知道如何迭代和访问 data[i] 而不是 data[0]。那么,关于如何访问我的对象对象索引有什么建议吗?如果需要,我可以提供更多代码。

感谢您的建议。

@编辑

这就是我的 console.log($scope.tickets) 的样子:

fromDpt: Array[4]
0: Object
1: Object
2: Object
3: Object

每个对象看起来都是这样的:

0: Object
__v: 0
_id: "55ddb1e6ca11301020ef9b77"
createdAt: "1440592358061"
createdById: "55d758ee3a7ff720141a18f8"
__proto__: Object

最佳答案

下面的代码将对票证中的所有对象应用过滤器并返回完整的对象数组:

<tr ng-repeat="ticket in tickets | filter:ticketsFilter"> 

如果您想使用过滤器来更改特定项目的输出,您可以将过滤器应用到 ng-repeat 以下一级:

<tr ng-repeat="ticket in tickets">
   {{ticket.name | filter:ticketsFilter}}
</tr>

但这取决于您希望过滤器做什么。我建议您还查看一些如何应用过滤器的信息:https://docs.angularjs.org/api/ng/filter/filter

如果这对您不起作用,我建议您更具体地说明您希望过滤器执行的操作。

关于javascript - 使用 AngularJS Filter 过滤数据。如何迭代对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32273520/

相关文章:

javascript - 当用户在文本区域唯一数据中输入时更改处理程序值

javascript - 为什么在 angularjs 指令链接函数中未定义双向绑定(bind)?

javascript - 如何使用 AngularJS 将标题作为第一个字符的联系人列表按字母顺序排列?

AngularJs 如何在 Angular UI Bootstrap 分页中显示过滤结果

用于文本/数字的 AngularJS 自定义过滤器

C# 版本的 Javascript Date.getTime()

javascript - 学习 Javascript/Jquery Promise&Deferred, Issue with $.when 多次使用

javascript - 如何在 MongoDB findOne 上返回条件响应?

javascript - 使用分组时如何在 AngularJS ui-grid 中进行过滤?

javascript - AngularJs 在某些条件下显示 ng-repeat 数据