簡體   English   中英

如果選中,則從列表中刪除項目

[英]Remove item from the list if checked

我有一個帶有復選框的項目列表,並且有刪除按鈕。 僅當選中列表中的項目時,刪除才有效。

例如,我有

$scope.list = [{
            name:'Groceries',
            check: false
        }, {
            name:'Laundry',
            check:false
        },
            {
             name:'Cleaning',
             check:false
            }];

在我的HTML中

<ul>
   <li ng-repeat="values in list">
      <input type="checkbox" ng-model="values.check"/>
      <span>{{values.name}}</span> 
  </li>
</ul>

<button>Delete</button>

這只是代碼片段,我已用ng-app聲明並引導了控制器

您應該使用Angular本機指令ng-checked

<input type="checkbox" ng-checked="values.check"/>

您可以為此使用過濾器:

的HTML

  <body ng-app="app" ng-controller='Ctrl'> 
     <ul>
        <li ng-repeat="values in list">
           <input type="checkbox" ng-model="values.check"/>
           <span>{{values.name}}</span> 
        </li>
     </ul>
     <button ng-click="remove((list | filter:{check:true}))">Delete</button>
 </body>

控制者

$scope.remove = function(items) {
     alert('removing ' + items.length + ' items');
     $scope.list = $filter('filter')($scope.list, { check: false});
}

演示柱塞

<body ng-controller="MyController">
    <ul>
        <li ng-repeat="values in list">
            <input type="checkbox" ng-model="values.check" />
            <span>{{values.name}}</span>
        </li>
    </ul>

    <button ng-click="deleteItems()">Delete</button>
</body>

控制器:

myApp.controller('MyController', function($scope, $filter) {

    $scope.list = [ {
        name : 'Groceries',
        check : false
    }, {
        name : 'Laundry',
        check : false
    }, {
        name : 'Cleaning',
        check : false
    } ];

    $scope.deleteItems = function() {
        $scope.list = $filter('filter')($scope.list, {check : false})
    }
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM