Angular 重置搜索变量

Angular resetting search variable

好的,我有以下对象:

    $scope.search = {};

这让我可以搜索以下元素:

<div class="col-md-12" ng-repeat="question in questions | filter:search:strict">

现在我可以做的一件事是设置一个名为 category_id 的变量,然后过滤每个项目的 category_id:

    $scope.search.category_id = selected.id;

但是有一个问题。一旦我尝试重置它,也就是调用 $scope.search.category_id = null

所有结果消失。

所以它似乎正在搜索 id = null 在每种情况下都是错误的类别。

所以我的问题是我该如何重置它?

您应该从对象中删除 属性 而不是将其设置为空。这会将其从搜索条件中删除。

delete $scope.search.category_id

您可以在下面看到这与将其设置为 null 有何不同

var a = { hello: 5 }
console.log(a, Object.keys(a)) // Object {hello: 5} ['hello']

a.hello = null
console.log(a, Object.keys(a)) // Object {hello: null} ['hello']

delete a.hello
console.log(a, Object.keys(a)) // Object {} []