【问题标题】:Removing items from a multi-select input element从多选输入元素中删除项目
【发布时间】:2016-04-11 17:45:09
【问题描述】:

当您发布问题然后为问题选择多个标签时,我希望将删除功能完全合并到多选元素中。选择一个项目后,我想在它旁边添加关闭图标,以便用户可以单击“关闭/删除”图标并一次从选​​择中删除该项目。

我想知道是否有人可以指出一个教程或让我知道合并我上面提到的功能的步骤。我目前有以下代码,它基本上是一个输入元素和一个下拉列表,用户可以单击并选择一行,然后将名称属性放入输入中,就像这里的标记功能一样。

我对如何在选择完成后添加“关闭”图标和背景感到有些困惑?

   <input  type="text" class="form-control no-select" name="inputField" placeholder="{{ctrl.placeholder}}" 
    ng-model="ctrl.ngModelValue" ng-click="ctrl.openDropdown($event)"/>

   <table class="table">
        <thead>
            <tr>
                <th ng-repeat="heading in ctrl.gridColumnHeaders" class="text-center">{{heading}}</th>
            </tr>
        </thead>
        <tbody>
            <tr ng-repeat="row in ctrl.filteredItems" ng-mousedown="ctrl.onSelectedLocal(row, $event)">
                <td ng-repeat="value in ctrl.sort(row) track by $index" class="text-center">
                    {{value}}
                </td>
            </tr>
        </tbody>
    </table>

单击输入会打开下拉菜单,然后用户可以单击一行来选择它,一旦选择了该行,它就会作为输入中 ng-model 中选定项目数组的一部分,但我想添加关闭图标?我该怎么做?

谢谢

在 ng-repeat 内的表中循环的示例数据:

  [
        { name: 'Jim', city: 'Minneapolis', state: 'MN', zip: 44332 },
        { name: 'Boe', city: 'Scottsdale', state: 'AZ', zip: 44332 },
        { name: 'Tom', city: 'S.F.', state: 'CA', zip: 11223 },
        { name: 'Joe', city: 'Dallas', state: 'TX', zip: 34543 },
        { name: 'Jon', city: 'L.A.', state: 'CA', zip: 56433 },
    ];

【问题讨论】:

    标签: javascript jquery css angularjs multi-select


    【解决方案1】:

    添加类似的东西

    <button ng-class="hidden:ctrl.selectedItems.indexOf(value) !== -1"></button>
    

    应该做的伎俩

    <table class="table">
        <thead>
            <tr>
                <th ng-repeat="heading in ctrl.gridColumnHeaders" class="text-center">{{heading}}</th>
            </tr>
        </thead>
        <tbody>
            <tr ng-repeat="row in ctrl.filteredItems" ng-mousedown="ctrl.onSelectedLocal(row, $event)">
                <tr ng-repeat="value in ctrl.sort(row) track by $index" class="text-center">
                    <td>{{value}}</td>
                    <td><button ng-class="hidden:ctrl.selectedItems.indexOf(value) !== -1"></button</td>
                </tr>
            </tr>
        </tbody>
    </table>
    

    您还可以在项目本身上设置 selected 属性,这样您就不必执行 indexOf 操作。

    原来如此

    <button ng-class="hidden:value.selected === false"></button>
    

    【讨论】:

    • 谢谢马特,我试过了,它目前显示在 ng-repeat 中的每个元素上...我想将“fa fa-close”图标添加到所选的名称属性中行,在输入中,一旦它被选中。但不是在那之前。我在上面的帖子底部添加了一些示例数据。我想在每个选定的“名称”属性的右侧添加“fa fa-close”,这样它看起来就像这样附加到输入中的 ng-model:Jim x |京东方 |汤姆 x |乔 x |乔恩 x。他们可以单击 x 以删除选择。隐藏按钮是否必须进入输入而不是表格?
    • 如果有人认为他们有解决方案,我仍然在这里寻找潜在的答案!谢谢
    猜你喜欢
    • 2016-12-06
    • 1970-01-01
    • 1970-01-01
    • 2014-07-15
    • 2021-08-24
    • 1970-01-01
    • 2020-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多