ng-click 仅在通过输入字段进行过滤后才起作用

ng-click works only after filtering by typing into a field

我想添加到 dir 分页控制过滤。

  <tr dir-paginate="advert in adverts |orderBy:propertyName:reverse | filter: searchAdvert | itemsPerPage: pageSize">

我的数据模型中有 categoryId 属性,我想通过选择 4 个按钮之一来过滤它,所以我编写了如下代码:

    <button type="button" class="btn btn-default"   ng-click="applyFilter(3)">Items</button>
    <button type="button" class="btn btn-default"  ng-click="applyFilter(4)">Accomodation</button>

在我的控制器中是:

$scope.applyFilter = function(object) {
    $scope.searchAdvert.categoryId = object;
}

});

然而,它不起作用。只有当我添加以下文本框时它才对我有用:

        <input type="text" placeholder="Search by Category" ng-model="searchAdvert.categoryId" />

如果我写,例如1,然后我可以使用按钮并且它们起作用了。 我想让它在没有 thix 文本框(只有按钮)的情况下工作

将您的 applyFilter 更改为:

$scope.applyFilter = function(object) {
    if(!$scope.searchAdvert)
       $scope.searchAdvert = {};

    $scope.searchAdvert.categoryId = object;
}

您当前的代码试图在空对象上设置值 categoryId。您的文本框示例在内部创建了 $scope.searchAdvert 对象并允许绑定 categoryId