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