我正在使用ng-repeat生成一个值表,并且我有一个用于过滤该列表的文本框。这很好。
我还有一个小" x"文本框后面的图像,用户可以单击该图标以删除他们键入的文本以进行过滤。当他们点击" x"时,我想清除文本框并恢复未经过滤的完整项目列表。单击" x"清除文本框,但列表完全消失,而不是恢复到完整的未过滤状态。诀窍是什么?这是我的代码:
<table id="tblGroups">
<tr>
<td>
<input ng-model="f.Name" />
<a href=""><img class="DeleteSavedSearchIcon" src="Content/assets/DeleteIconSmall.png" ng-click="f.Name = null" /></a>
</td>
</tr>
<tr ng-repeat="g in groups | filter:f">
<td>
<label><input type="checkbox" id="{{g.Name}}" ng-click="onClickSearchCriteriaCheckbox()" ng-model="selected[m.Name]" />{{g.Name}}</label>
</td>
</tr>
</table>
答案 0 :(得分:1)
尝试
ng-click="f.Name = undefined"
参见plunker https://plnkr.co/edit/TpESoPYENhYQoWuNrIFT?p=preview
中的示例答案 1 :(得分:1)
而不是将f.name
设置为null
,而不是将其设置为空白字符串。
<强>之前:强>
<a href=""><img class="DeleteSavedSearchIcon" src="Content/assets/DeleteIconSmall.png" alt="delete"
ng-click="f.Name = null" /></a>
<强>后:强>
<a href=""><img class="DeleteSavedSearchIcon" src="Content/assets/DeleteIconSmall.png" alt="delete"
ng-click="f.Name = ''" /></a>
var app = angular.module('myApp', []);
app.controller('MyController', function MyController($scope) {
$scope.groups = [{
Name: 1
}, {
Name: 2
}, {
Name: 3
}, {
Name: 4
}, {
Name: 5
}, {
Name: 6
}];
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-controller='MyController' ng-app="myApp">
<table id="tblGroups">
<tr>
<td>
<input ng-model="f.Name" />
<a href=""><img class="DeleteSavedSearchIcon" src="Content/assets/DeleteIconSmall.png" alt="delete" ng-click="f.Name = ''" /></a>
</td>
</tr>
<tr ng-repeat="g in groups | filter:f">
<td>
<label>
<input type="checkbox" id="{{g.Name}}" ng-click="onClickSearchCriteriaCheckbox()" ng-model="selected[m.Name]" />{{g.Name}}</label>
</td>
</tr>
</table>
</div>