如何使用ng-click值作为ng-repeat属性?

时间:2016-10-18 21:02:24

标签: angularjs

如何在$scope.clickedVal中获取r.clickedVal

按钮单击调用一个函数,传入两个参数:

<a ng-click="display('Info', 'Admission_Info'); filters.Admission_Info= '!!'; ">Info</a> 
<a ng-click="display('Info', 'SomeOther_Info'); filters.SomeOther_Info= '!!'; ">Other</a>

控制器中的功能:

$scope.display = function (col, val) {
  $scope.filters = {};
  $scope.clickedColumn = col;
  $scope.clickedVal = val;
};

表格显示包含2列的过滤视图。

<tr ng-repeat="r in response | filter:filters as filtered " ng-show="filtered.length">
  <td>{{ r.Name }}</td>
  <td>{{ r.clickedVal }}</td>
</tr>

{{ r.{{clickedVal}} }}无效。

例如,如果单击第一个按钮,r.clickedVal应返回r.SomeOther_Info

我也尝试过创建过滤器,但遇到同样的问题 - m.value不正确。

SchoolProgramsApp.filter('myFilter', function () {
    return function (input, column, value) {
        var out = [];
        angular.forEach(input, function (m) {         
            if (m.value === value) {           
                out.push(m)
            }    
        })    
        return out;
    }
});

1 个答案:

答案 0 :(得分:1)

您应该使用bracket notation通过变量名访问对象的属性:

{{ r[clickedVal] }}