【问题标题】:How to checked check box in angular js?如何检查angularjs中的复选框?
【发布时间】:2015-12-12 14:21:24
【问题描述】:
  • 我有两个列表(列表 1 和列表 2)的复选框,其中三个项目 在两个列表中都可用。我的问题是当我检查列表 1 项时 然后列出 2 项也检查不知道为什么。我需要阻止这一切。我的 要求是当我检查列表 1 项时它不会影响 清单 2 项。请帮忙

Fiddle Here

查看

<div ng-app="checkbox" ng-controller="homeCtrl">
    <div ng-repeat="item in list">
        <input type="checkbox" ng-model="item.checked"  
             ng-click="fnChangeAssetType1(item)" />
        <label>{{item.value}}</label>
    </div>
    <br/><br/>
    New List<br/><br/>
    <div ng-repeat="items in lists">
      <input type="checkbox" ng-model="items.checked"  
             ng-click="fnChangeAssetType(items)"  />
        <label>{{items.value}}</label>
    </div>

</div>

JS

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

app.controller('homeCtrl', function($scope) {
       var list = [{
            "id": 1,
            "value": "apple",
        }, {
            "id": 3,
            "value": "orange",
        }, {
            "id": 5,
            "value": "pear"
        }];

     $scope.list=list;
     $scope.lists=list;

    $scope.fnChangeAssetType = function (items) {
        angular.forEach($scope.lists, function (item) {
            item.checked = false;
        });
        items.checked = true;
    };
    $scope.fnChangeAssetType1 = function (items) {
        angular.forEach($scope.list, function (item) {
            item.checked = false;
        });
        items.checked = true;
    };

    });

【问题讨论】:

    标签: angularjs checkbox angularjs-ng-repeat


    【解决方案1】:

    这是因为您的 $scope.list$scope.lists 都指向内存中的同一个数组,因为数组 (list) 是一个引用类型。您需要做的是为$scope.lists 创建一个单独的数组,如下所示。

    你需要使用angular.copy()

    $scope.list=list;
    $scope.lists= angular.copy(list); // this will create a deep copy of list array and store it in another memory slot, //refer the angular.copy doc
    

    这是更新后的fiddle

    【讨论】:

    • @K. Toress:- 真的很感激。工作顺利。
    • 很高兴在这里为您提供帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-14
    • 2016-08-09
    • 1970-01-01
    • 2017-05-31
    • 1970-01-01
    • 2023-03-28
    相关资源
    最近更新 更多