【发布时间】:2016-04-29 23:06:48
【问题描述】:
我有一个 ng-repeat 显示来自 json 的项目,根据用户在字段中输入的内容,它可以被过滤。
<tr ng-repeat="i in filteredItems = (iso3166 | filter: {alpha_2: isoQuery})">
这一切都按预期工作。
组中的每个项目(“iso3166”)都有 3 个布尔值,“restricted”、“unrestricted”和“unclassified”,分别对应于“license”、“prohibited”和“size”列。
用户可以在每一行的每一列中将这些值之一设置为真或假:
这很好用。
我需要在顶部添加一个“ALL”行,它将过滤集中的每个项目设置为每列中单击的按钮。
换句话说,如果用户点击“license”列中的ALL rows“restricted”按钮,每一行的“license”“restricted”值都应该切换为真或假。我不确定设置值的语法。
现在我有了 ng-click
ng-click="setAll('col1','licensed')"
和函数为
$scope.setAll = function (column, value) {
angular.forEach($scope.filteredItems, function (value, key) {
??
});
};
如何为循环中的每一行分配正确的值?
【问题讨论】:
-
对不起。编辑了问题。
-
但是如果你有过滤的项目,为什么不直接做
value[column] = value? -
你需要更改局部变量的名称,否则它会被遮蔽。
function(item, key) { item[column] = value; } -
这正是我的问题。谢谢!
标签: javascript angularjs loops angularjs-ng-repeat