Javascript 带角度-Don';t根据其他数组显示数组项';重复Ng的s项

Javascript 带角度-Don';t根据其他数组显示数组项';重复Ng的s项,javascript,arrays,angularjs,filter,ng-repeat,Javascript,Arrays,Angularjs,Filter,Ng Repeat,我假设这与过滤器有关。我有两个数组:1。包含所有可能成为管理员的区域(称为区域)和2。仅包含用户正在管理的区域(称为adminAreas,它位于用户的数组中)。我有一个网页,显示在两列显示器都。当用户单击添加它们时,它会将它们添加到另一列中,并将自己从当前列中删除。我想做的是。。。当页面加载时。。。不要在区域分区中重复adminAreas分区中的项目。这也是一种更简洁的方法来来回添加/删除 JS: HTML: {{area.name} ng repeat=“区域中的区域”|过滤器:过滤器非当前

我假设这与过滤器有关。我有两个数组:1。包含所有可能成为管理员的区域(称为区域)和2。仅包含用户正在管理的区域(称为adminAreas,它位于用户的数组中)。我有一个网页,显示在两列显示器都。当用户单击添加它们时,它会将它们添加到另一列中,并将自己从当前列中删除。我想做的是。。。当页面加载时。。。不要在区域分区中重复adminAreas分区中的项目。这也是一种更简洁的方法来来回添加/删除

JS:

HTML:


{{area.name}
ng repeat=“区域中的区域”|过滤器:过滤器非当前

$scope.filterNotCurrent = function (area) {
    return !$scope.user.adminAreas.some(function (element) {
        if (element === area)
            return true;
    });
};
ng repeat=“区域中的区域”|过滤器:过滤器非当前

$scope.filterNotCurrent = function (area) {
    return !$scope.user.adminAreas.some(function (element) {
        if (element === area)
            return true;
    });
};
使用此筛选器:

angular.module('myApp', []);

angular
  .module('myApp')
  .filter('filterAssignedAreas', filterAssignedAreas);

function filterAssignedAreas(){
  return function(areas, assignedAreas){  
    return areas.filter(function(obj){
      return !assignedAreas.some(function(obj2){
        return obj2.name == obj.name;  
      })
    })
  }
}
然后:

<div class="sideTwoRemove" ng-repeat="area in areas |   filterAssignedAreas:user.adminAreas">

使用此过滤器:

angular.module('myApp', []);

angular
  .module('myApp')
  .filter('filterAssignedAreas', filterAssignedAreas);

function filterAssignedAreas(){
  return function(areas, assignedAreas){  
    return areas.filter(function(obj){
      return !assignedAreas.some(function(obj2){
        return obj2.name == obj.name;  
      })
    })
  }
}
然后:

<div class="sideTwoRemove" ng-repeat="area in areas |   filterAssignedAreas:user.adminAreas">


必须提供一些虚拟数据作为数组。如果没有这些,就不可能进行调试…@Rayon Dabre不确定这是否会有帮助-从控制台:(用户)对象>管理区域>0:“US”1:“SA”从控制台:(区域)数组[8]>0:Object>items:--name:“SSU”| info:--从控制台:(区域)数组[8]>1:Object>项目:---name:“TTA”| info:--从控制台:(区域)数组[8]>2:Object>items:--name:ITA“| info:---等…您必须提供一些虚拟数据作为数组。如果没有这些数据,就无法进行调试…@Rayon Dabre不确定这是否有帮助-从控制台:(用户)Object>adminAreas>0:“US”1:“SA”从控制台:(区域)数组[8]>0:Object>items:--name:“SSU”| info:---从控制台:(区域)数组[8]>1:Object>items:--| name:“TTA”| info:---来自控制台:(区域)数组[8]>2:Object>items:--|name:ITA”| info:---等等……如果您使用过滤器……只需构建一个自定义过滤器并将所需内容传递到其中……无需为此使用控制器……@TomSlick它使area div为空。如果您使用过滤器……只需构建一个自定义过滤器并将所需内容传递到其中……无需使用控制器……@TomSlick它使area div为空。