使用AngularJS我将用户发送到一个页面,该页面具有基于他们在上一页上选择的员工的查询字符串。我正在拆分查询字符串以记录变量$scope.splitusers
,该变量记录了user.ID
的数组,例如[" 14"," 21"]已通过来自上一页。我想使用ng-if来自DOM的user.ID等于来自JS的用户。在HTML中,我想使用ng-if
并在user.ID == splitusers
时显示用户的信息。现在,当查询字符串中只有一个user.ID
,但当选择了多个用户时,它会被破坏。
以下是目前已损坏的HTML:
<div ng-app="myApp">
<div ng-controller="MainCtrl">
<div class="ProfileSheet" ng-repeat="user in users" ng-if="user.ID == splitusers">
<table id="Profile">
<tr>
<th>User</th>
<td>{{user.Title}}</td>
</tr>
</table>
</div>
</div>
</div>
这是JS:
var app = angular.module('myApp', ['ngSanitize']);
app.controller('MainCtrl', function($scope, $http, $q){
var getQueryString = function (field, url){
var href = url ? url : window.location.href;
var reg = new RegExp('[?&]' + field + '=([^&#]*)', 'i');
var string = reg.exec(href);
return string ? string[1] : null;
}
$scope.selectedusers = getQueryString('users', window.location.href)
$scope.splitusers = $scope.selectedusers.split(',')
});
我该如何解决这个问题?
答案 0 :(得分:0)
您可以这样做:
<div class="ProfileSheet" ng-repeat="user in users" ng-if="splitusers.includes(user.ID)">
但更好的选择是过滤控制器内的users
数组,甚至是ng-repeat
指令内部。