如何将两个ng模型值绑定在一起

时间:2018-03-20 13:11:45

标签: angularjs angular-filters

我将JSON文件显示为表格,我想使用两个步骤在此表格中搜索:

  1. 从选择菜单中选择一个选项,以选择要搜索的列。

  2. 输入,用于输入您要搜索的关键字。

  3. 那么如何将“所选选项形式选择标签”的值与“输入”的值连接起来?

    例如,用户从选择菜单中选择了“名称”选项,然后他在输入中输入了“John”

    这是我的代码:

    https://jsfiddle.net/p1nkfpez/7/

    public void println(String x) {
        synchronized (this) {
            print(x);
            newLine();
        }
    }
    

    我希望Angular过滤器如下: 滤波器:keyword.selection

2 个答案:

答案 0 :(得分:2)

您可以创建一个动态创建过滤器对象的函数:

$scope.getFilter = function() {
    return {
        [$scope.selection]: $scope.keyword
    }
}

并像这样使用它:

<tr data-ng-repeat="row in myRows | filter:getFilter()">
    ...
</tr>

答案 1 :(得分:1)

您可以创建自定义过滤器,您可以在其中按名称访问您的属性。

自定义过滤器

$scope.myCustomFilter = function(row){
  if($scope.keyword == undefined || $scope.keyword.length == 0)
    return true;
  if(row[$scope.selection].toLowerCase().indexOf($scope.keyword) >= 0){
    return true;
  }
  else
    return false;
}

并将过滤器添加到ng-repeat

<tbody>
  <tr data-ng-repeat="row in myRows | filter: myCustomFilter">
    <td>{{$index + 1}}</td>
    <td>{{row.nm}}</td>
    <td>{{row.cty}}</td>
    <td>{{row.hse}}</td>
    <td>{{row.yrs}}</td>
  </tr>
</tbody>

Updated Fiddle