我正在尝试从符合某个条件的对象数组中获取某个对象。
对象的id应该等于范围变量$scope.lobbyid
。我目前的方法不会将大厅对象传递给控制器。
选定的lobby
表示网站上活动标签的数据。所以容器数组只在站点加载时被提取一次。
标记
<div ng-repeat="lobby in lobbies | filter:checkLobbyID(lobby)">
[[lobby.name]]
</div>
控制器
$scope.checkLobbyID = function($lobby) {
return $lobby.lobbyid == $scope.lobbyid;
}
阵列
"lobbies": [
{
"isglobal": true,
"lobbyid": 1,
"name": "GLOBAL",
},
{
"isglobal": false,
"lobbyid": 2,
"name": "stackoverflow rules",
},
{
"isglobal": false,
"lobbyid": 3,
"name": "sdadadad",
}
]
临时解决方案是将以下代码添加到tab-switch事件中。但这需要一个副本和另一个范围变量。如何用过滤器实现这个目标?
angular.forEach($scope.lobbies, function(lobby) {
if (lobby.lobbyid == $scope.lobbyid)
$scope.currLobby = angular.copy(lobby);
});
答案 0 :(得分:6)
你不需要标记中的大厅参数。过滤器将隐式将其传递给scope-filter函数
<div ng-repeat="lobby in lobbies | filter:checkLobbyID">
问候