如何获取所有选中的值并传递给角度控制器?

时间:2016-10-26 06:16:12

标签: javascript angularjs laravel checkbox controller

我有类似帖子的东西。 我想添加类似批量删除的内容。

我正在考虑将帖子的id作为值,当点击一个按钮时,所有这些选中的值都将传递给角度控制器,然后将其传递给后端以搜索所选的ID并删除它们。

但我不确定我是如何传递所有这些值的

我只有像这样简单的东西

<td><input type="checkbox" value="post.id" name="posts"></td>

<button class="btn btn-info pull-middle" ng-show="showDelBtnAndTableHeaders" ng-click="destroySelected(selectedPosts)">Delete Selected Posts</button>

我在控制器中添加了这样的东西,以测试我是否正确,我得到了值数组,但做了几次不同的尝试,没有运气

    $scope.destroySelected = function (array) {
        console.log(array);
        Post.destroySelected(array)
            .success(function () {

            })

    };

有人可以就此提出一个想法吗? 提前谢谢。

3 个答案:

答案 0 :(得分:0)

可能你放在这里:value="post.id"

而不是:value="selectdPosts.id"

或此处:ng-click="destroySelected(selectedPosts)"

你应该放:ng-click="destroySelected(post)"

答案 1 :(得分:0)

以下是您问题的简单解决方案:

Working Example in JSFiddle

<强> HTML:

<div ng-controller="PostController">
<label ng-repeat="post in posts">
<input type="checkbox" name="selectedPosts[]" value="{{post.id}}"ng-model="post.selected">{{post.name}}
</label>
<button ng-click="destroySelected()">Delete Selected Posts</button>
</div>


控制器:

myApp.controller('PostController', ['$scope', function($scope) {

      // posts model
      $scope.posts = [
        { id: 1 , name: 'Manager',     selected: true },
        { id: 2 , name: 'Team Leader', selected: false },
        { id: 3 , name: 'Sr. Manager', selected: true },
        { id: 4 , name: 'Developer',   selected: false }
      ];

      // Remove Selected Posts
      $scope.destroySelected = function destroySelected(){
          angular.forEach($scope.posts, function (item) {

               // Check if Item is selected
               if(item.selected === true){
                   // Delete Item based on item.id 
                   alert('Deleted ItemId: '+item.id);
               }
          });
      } 
}]);

答案 2 :(得分:0)

请在评论中查看plunker链接....因为我不知道如何在这里获取......我使用了一个过滤器来获取所有选中的id并通过按钮click.so从这里你可以发送那些你的电话....