【问题标题】:Filter select list items based on selected items within the loop根据循环中的选定项过滤选择列表项
【发布时间】:2014-06-11 18:55:03
【问题描述】:

我在一个表上有一个 ngRepeat 指令,它遍历一些项目,每个项目都有一个名称字段。

我在这个循环的表格单元格中有一个选择列表,并且该选择列表有一个名称列表。

示例父列表(SelectedPeople):{ "Name": "asdfasdfasdf" }

每个选择列表(人物):[ { "Name": "John Smith" }, { "Name": "Jane Smith" },{“姓名”:“比尔·盖茨”},{“姓名”:“asdfasdfasdf”}]

<table>
    <tr ng-repeat="selectedPeople in SelectedPeople">
        <td>
            <select ng-model="selectedPeople.SelectedPeople.Name" ng-options="people.Name as people.Name for people in People"></select>
        </td>
    </tr>
</table>

(忽略上面json中的语法错误,只是一个例子)

如何过滤选择列表以添加表格中已选择的项目?

示例:(在下图中)“asdfasdfasdf”项不应出现在选择列表中。

我根本不知道如何为此编写过滤器。任何帮助将不胜感激,我希望这是有道理的。 :)

提前致谢!

【问题讨论】:

    标签: javascript html angularjs angularjs-ng-repeat


    【解决方案1】:

    这样的事情应该可以工作:

    $scope.inListFilter = function(person) {
      return (SelectedPeople.indexOf(person) !== -1);
    }
    

    然后是html:

    <select ng-model="selectedPeople.SelectedPeople.Name" ng-options="person.Name as person.Name for person in People | filter:inListFilter"></select>
    

    您将对象传递给过滤器函数,然后对其运行测试并返回真或假,具体取决于您是否希望将其过滤掉。这将检查它是否在列表中,如果是则返回 false,从而将其过滤掉。

    【讨论】:

      猜你喜欢
      • 2020-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-02
      • 2015-08-15
      • 2015-09-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多