ng-repeat

时间:2015-05-22 05:57:17

标签: javascript html angularjs angularjs-ng-repeat ng-repeat

假设我在HTML中有这个

<div ng-repeat="tag in response.Tags | filter : searchKey">
</div>

我还有searchKey模型的文本输入。

<input type="text" ng-model="searchKey">

response.Tags是一组JSON。

现在问题是,默认加载时,ng-repeat填充的UI中有一些丢失的对象。当我使用文本输入并过滤列表时,我可以看到丢失的东西。

出了什么问题?

注意 - 数组没有变化。元素在那里。一旦它加载它没有改变。

修改 这是我收到的原始数据。可以达到500个元素,只有少数几个没有错过。

    {
"AlertCategoryID": 15,
"AlertName": "Disk Space Low",
"AlertType": "Warning",
"AlertMessage": "<data><summary>Available disk space (%) on drive _Total is less than 10%. Current value is 5%.</summary><detail></detail></data>",
"AlertTime": "2015-05-21T19:24:03"
    }, {
"AlertCategoryID": 15,
"AlertName": "Disk Space Low",
"AlertType": "Warning",
"AlertMessage": "<data><summary>Available disk space (%) on drive _Total is less than 10%. Current value is 5%.</summary><detail></detail></data>",
"AlertTime": "2015-05-21T19:22:05"
}

我使用XML解析器来提取<summary>标记,我也拦截并删除日期和时间之间的T;并将这些分配给我将用于ng-repeat的数组。

我在UI中显示AlertName,Message及其时间。

我注意到容易丢失的元素在消息标记中有一个非常大的XML。我不知道它是否与任何事情有关。

1 个答案:

答案 0 :(得分:1)

如果要根据JSON对象中的特定键进行过滤,请使用以下语法

<div ng-repeat="tag in response.Tags | filter:{ AlertName: searchKey }">