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

时间:2016-12-14 17:30:53

标签: angularjs angular-ngmodel angularjs-ng-click

我想添加到dag Paginate控件过滤。

  <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文本框(仅按钮)的情况下工作

1 个答案:

答案 0 :(得分:1)

将您的applyFilter更改为:

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

    $scope.searchAdvert.categoryId = object;
}

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