数组 – 可以通过在另一个数组中的包含来过滤angular.js吗?

所以如果我有一个数组:
$scope.letters = 
[{"id":"a"},{"id":"b"},{"id":"c"}];

和另一个数组

$scope.filterBy = ["b","c","d"];

而且我想要一些ng重复过滤$ scope.letters只有$ filterBy中出现的项目。

我想能够做一些事情:

<span ng-repeat="{{letter in letters|filter: letter.id in filterBy }} > {{letter.id}} </span>

并打印b,c

我知道这是一个非常愚蠢的例子,但是有没有办法基于另一个数组对象的内容过滤一个angular.js表达式?

你应该尝试这样的事情:

JS:

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

function Ctrl($scope) {
  $scope.letters = [
    {id: 'a'},{id: 'b'},{id: 'c'}
  ];

  $scope.filterBy = ['b','c','d'];

  $scope.filteredLetters = function () {
    return $scope.letters.filter(function (letter) {
      return $scope.filterBy.indexOf(letter.id) !== -1;
    });
  };
}

Ctrl.$inject = ['$scope'];

HTML:

<div ng-repeat='letter in filteredLetters(letters)'>{{letter.id}}</div>

你可以试试live example

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...