Javascript 角度过滤器和ng单击不工作
我有一个菜单可以列出一组列表:Javascript 角度过滤器和ng单击不工作,javascript,angularjs,filter,ng-repeat,angularjs-ng-click,Javascript,Angularjs,Filter,Ng Repeat,Angularjs Ng Click,我有一个菜单可以列出一组列表: <ul> <li ng-repeat="group in getData"> <a ng-click="groupId = group.id">{{group.id}}</a> </li> </ul> 它应过滤以下列表,以仅显示具有所选groupId的项目: Data.query(function(data) { $scope.getData = data; $sco
<ul>
<li ng-repeat="group in getData">
<a ng-click="groupId = group.id">{{group.id}}</a>
</li>
</ul>
它应过滤以下列表,以仅显示具有所选groupId
的项目:
Data.query(function(data) {
$scope.getData = data;
$scope.currentGroup = $filter('filter')(data, {id: $scope.groupId});
$log.debug($scope.groupId);
$log.debug($scope.currentGroup);
}, function(reason) {
$log.error(reason)
});
<tr ng-repeat="list in currentGroup.lists">
<td>{{list.name}}</td>
</tr>
{{list.name}
然而,它也不起作用。我可以在控制台中记录正确的数组,但该表没有显示任何数据
请看一下这个。在你的背包里,你可以这样使用它
<table>
<tr ng-repeat="group in currentGroup">
<td ng-repeat="list in group.lists">{{list.name}}</td>
</tr>
</table>
{{list.name}
因为currentGroup也是Plunker中的一个数组,所以您可以这样使用它
<table>
<tr ng-repeat="group in currentGroup">
<td ng-repeat="list in group.lists">{{list.name}}</td>
</tr>
</table>
{{list.name}
由于currentGroup也是一个数组,因此您的代码存在多个问题。这里有两个:
ng repeat
创建它自己的子作用域,因此当您执行ng click=“groupId=group.id”
操作时,您要分配子作用域的groupId
,您应该设置父作用域的:
<a ng-click="$parent.groupId = group.id">{{group.id}}</a>
您的代码存在多个问题。这里有两个:
ng repeat
创建它自己的子作用域,因此当您执行ng click=“groupId=group.id”
操作时,您要分配子作用域的groupId
,您应该设置父作用域的:
<a ng-click="$parent.groupId = group.id">{{group.id}}</a>
您需要调用一个方法而不是在
ng click
@PraveshKhatri中提供值。您可以提供一个示例吗?您需要调用一个方法而不是在ng click
@PraveshKhatri中提供值。您可以提供一个示例吗?请提供一个示例!您知道为什么单击链接时不更新表吗?它不应该更新过滤器吗?@drbishop,为什么要更新?您的$filter
代码位于只调用一次的函数中。我明白了。我尝试在函数外部调用它,但是它不能作为$scope工作。getData
是未定义的
。有更好的方法吗?@drbishop一种方法是更改您的视图以从函数获取列表,因此过滤器始终被调用:例如:谢谢,我非常感谢您的帮助。tks举个例子!您知道为什么单击链接时不更新表吗?它不应该更新过滤器吗?@drbishop,为什么要更新?您的$filter
代码位于只调用一次的函数中。我明白了。我尝试在函数外部调用它,但是它不能作为$scope工作。getData
是未定义的
。有更好的方法吗?@drbishop一种方法是更改您的视图以从函数中获取列表,因此过滤器始终被调用:例如:谢谢,我非常感谢您的帮助。我已经投票,但我是新用户,只有在我获得15分的声誉后才会显示我的投票。我已经投票,但我是新用户,只有在我获得15分的声誉后,它才会显示我的投票。