当前位置: 首页 > 面试题库 >

如何仅在angularjs中获取选定的复选框?

湛同
2023-03-14
问题内容

我已经ng-repeat编辑了数据,并试图仅获取用户已选择的数据。我不确定该怎么做,这就是我所拥有的:

HTML:

<div data-ng-controller="MyCtrl">
    <ul>
        <li data-ng-repeat="record in records">
            <input type="checkbox" ng-model="record.Id"> {{record.Id}}
        </li>
    </ul>
    <a href="javascript:;" data-ng-click="ShowSelected()">Show Selected</a>
</div>

JS:

function MyCtrl($scope) 
{
    $scope.records = [ { "Id": 1 }, { "Id": 2 }, { "Id": 3 } ];
    $scope.ShowSelected = function() 
    {
        // how can I get only the selected records here ?
    }
}

我确实以一种方式使它工作-通过向isSelected:false每个对象添加属性ng- model并将复选框的更改为record.isSelected,然后可以在ShowSelected函数中对此进行过滤。但是,这似乎效率很低,如果可以避免,我不想在模型中添加额外的属性。

有没有更好的办法 ?


问题答案:

的JavaScript

var app = angular.module('plunker', ['ui']);

app.controller('MyCtrl', function($scope) {
    $scope.records = [ { "Id": 1 }, { "Id": 2 }, { "Id": 3 } ];
    $scope.selected = {};
    $scope.ShowSelected = function() {
      $scope.records = $.grep($scope.records, function( record ) {
        return $scope.selected[ record.Id ];
      });
    };      
});

HTML

<div data-ng-controller="MyCtrl">
    <ul>
        <li data-ng-repeat="record in records">
            <input type="checkbox" ng-model="selected[record.Id]"> {{record.Id}}
        </li>
    </ul>
    <a href="javascript:;" data-ng-click="ShowSelected()">Show Selected</a>
</div>

http://plnkr.co/edit/lqtDQ6

您可以将标志分别存储在其中,并使用它来过滤数据。



 类似资料:
  • 问题内容: 我有一组具有相同名称的输入复选框,并且我想确定已使用JavaScript选中了哪些复选框,如何实现呢?我只知道如何获取所有复选框,如下所示: 问题答案: 一个简单的for循环,用于测试属性并将选中的属性附加到单独的数组中。从那里,如果需要,您可以进一步处理数组。

  • 问题内容: 我有两个单选按钮和。 如何获取所选单选按钮的值。 我是否需要使用ng-model或其他东西。在jquery中,我知道Angularjs中没有的东西。 问题答案: 双方应该有相同与不同 (意味着有选择使用S或按钮),使所选择的值将在修改$ scope变量,你可以抓住的形式的控制器内部的值或者提交按钮点击。 标记

  • 我正在做宠物项目和使用NetBeans JFrame。我面临一个问题,我只能计算一个选中的chexBox总数。但是我如何实现一个方法或smth,它可以帮助计算所有选中的CheXBoxes的总数。很高兴回答我该如何执行和计算检查的价格?下面是我的代码和截图

  • 我正在学习AngularJS并尝试实现一个表单。我有一个select元素,我希望能够根据所选文本更改所选值的颜色。 HTML: CSS: 但这不起作用。这里的问题是什么? EDIT1:默认选项在选中时应该是灰色的,甚至在用户打开下拉列表时也应该是灰色的。Rest其他选项应该在两个条件下都有其黑色文本(在选择和下拉列表显示)。 提前道谢。

  • 所以我有这样的代码: 我只需要Javascript来获取当前选中的任何复选框的值。 编辑:要添加,只有一个复选框。

  • 问题内容: 所以我有这些复选框: 等等。它们大约有6个,并且都是手工编码的(即未从数据库中获取),因此它们可能会保持一段时间不变。 我的问题是如何将它们全部放入数组中(使用javascript),以便在使用Jquery 进行AJAX 请求时可以使用它们。 有什么想法吗? 编辑:我只希望将选中的复选框添加到数组 问题答案: 格式化: 希望它会起作用。