ng-model的角度过滤表不起作用

时间:2016-06-05 13:34:39

标签: javascript angularjs angularjs-filter

我正在尝试按一列或多列过滤表格。

问题是表中有些行没有所有字段,因为它们可以为空。

然后,在进行任何搜索之前,只显示包含所有数据字段的行,“ng-repeat”不显示此行。

我的HTML代码:

<input ng-show="combo.num == 0" type="text" class="form-control" ng-model="searchUS.$"/>
<input ng-show="combo.num == 1" type="text" class="form-control" ng-model="searchUS.subject"/>

<input ng-show="combo.num == 2" type="text" class="form-control" ng-model="searchUS.status"/>
<input ng-show="combo.num == 3" type="text" class="form-control" ng-model="searchUS.tags"/>


<tr ng-repeat="row in rowCollectionUserStories 
               | orderBy:sortType:sortReverse |filter:searchUS"
                ng-class="row.selectedCell ? 'cellSelectedClass' : ''">

我还尝试为“searchUS”更改ng-model =“searchUS。$”,但我将输入作为占位符[object] [object]。

在这个例子中它完美地运作:link

我更改数组删除数字字段,它可以工作。

在我的情况下,字段可能是空的是一个数组,这是问题所在。

有什么想法吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

我通过执行以下操作设法解决了问题:

<input ng-show="combo.num == 0" type="text" class="form-control" ng-model="searchUS.$"/>
<input ng-show="combo.num == 1" type="text" class="form-control" ng-model="searchUS.subject"/>

<input ng-show="combo.num == 2" type="text" class="form-control" ng-model="searchUS.status"/>
<input ng-show="combo.num == 3" type="text" class="form-control" ng-model="searchTags"/>


<tr ng-repeat="row in rowCollectionUserStories | orderBy:sortType:sortReverse | 
               filter: (combo.num == 3 ? {tags: searchTags} : searchUS)"
                    ng-hide="row.sprint !== undefined"
                    ng-class="row.selectedCell ? 'cellSelectedClass' : ''">