从数组angular js中删除未经检查的值

加内什克

我是 angular js 的新手。我有一个带有表格的复选框。

<td><input type="checkbox" ng-if="report.attributes.message.length > 0" ng-bind="report.attributes.message" ng-click="getcheckedData(report.attributes.message)">{{ report.attributes.message }}</td>

在这里,我有一个方法getcheckedData()所以,在那个方法中

   var messages = [];

   $scope.getcheckedData = function(SelectedVal) {     
       $("input:checkbox[type=checkbox]:checked").each(function() {
          if ($.inArray(SelectedVal , messages) === -1){
                messages.push(SelectedVal);
           }
        });
         return messages;
  };

我有一个全局声明的数组,因此,我想将选定的复选框表数据的值放入该数组中。我能够在array. 因此,当用户取消选中时,未选中的值也应该从中删除array所以,当用户检查然后,我给了一个按钮,我将所有检查的消息发送到后端。因此,当我取消选中并按下按钮时,所有消息仍保留在数组中。

    $scope.sendAllMessages = function() {      
      uploadService.SendMessagesToQueue(uploadService.currentFileName,$scope.documentType,messages)
     .then(function () {
        }, function (error) {
         $scope.errorMessage = error.status + " : " + error.statusText;
         toastr.error($scope.errorMessage, 'Error : ' + error.status);
         if (error.status === 401) {
             loginService.authenticationError();
         }
       })
       .finally(function () {

        });
     };

对于按钮 -

<button type="submit" ng-click = "sendAllMessages()" class="button-size btn btn-primary">Send  </button>

那么,我该如何解决这个问题呢?

斯拉万

你所做的不是实现你所需要的角度方式

但是,如果您需要以与您相同的方式进行操作,那么您应该进行以下更改。

如果未选中,您应该从数组中删除该值,使用 messages.splice(index, 1);

这是您更改后的代码,没有 ng-model(不推荐)

var messages = [];

   $scope.getcheckedData = function(SelectedVal) {     

          if ($.inArray(SelectedVal , messages) === -1){
                messages.push(SelectedVal);
           }
           else
           {
           var index = messages.indexOf(SelectedVal)
           messages.splice(index, 1);
           }

         return messages;
  };

要以有角度的方式实现它,您需要使用 ng-model

这是一个使用 Angular 的示例

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

function Ctrl($scope) {
   
    $scope.messages = {
      
    };

    $scope.reports = [ { "name": "Sport", "id": "50d5ad" } , {"name": "General", "id": "678ffr" } ];
    
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-controller="Ctrl" ng-app="app">
    <span ng-repeat="report in reports">
      <label class="checkbox" for="{{report.id}}">
        <input type="checkbox" ng-model="messages[report.id]" name="group" id="{{report.id}}" />
        {{report.name}}
      </label>
    </span>
    <pre ng-bind="messages | json"></pre>    
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angular.js检查数组中是否存在传递值

来自分类Dev

检查数组Angular JS中的现有对象值

来自分类Dev

如何在 JavaFX 的 XYChart 中删除“为可变参数创建未经检查的泛型数组”?

来自分类Dev

Angular JS-Ionic-从数组中删除

来自分类Dev

Angular JS中的数组

来自分类Dev

Vanilla JS:检查元素classList是否包含数组中的值并将其删除

来自分类Dev

从Angular数组中删除元素

来自分类Dev

从Angular数组中删除元素

来自分类Dev

如何使用Angular.js在ng-repeat中检查数组值是否为空

来自分类Dev

Angular 类中的数组数组

来自分类Dev

Angular Js:范围数组

来自分类Dev

如何在Angular Js中检查数组的大小?

来自分类Dev

Angular中的路线数组

来自分类Dev

Angular中的数组映射

来自分类Dev

Angular中的路线数组

来自分类Dev

检查数组中的值

来自分类Dev

检查数组中的值

来自分类Dev

检查数组中的值

来自分类Dev

从数组中删除值

来自分类Dev

Angular - 从数组中完全删除对象

来自分类Dev

Angular 2:删除数组中的对象

来自分类Dev

如何在Angular JS的数组中附加给定值

来自分类Dev

在Angular JS中以编程方式插入数组值

来自分类Dev

根据单独数组中的值设置数组的值[Angular,forEach]

来自分类Dev

更快的代码,用于检查JS数组中的重复值

来自分类Dev

在 Angular 中读取数组内部的数组

来自分类Dev

如何从Node.js中的数组中删除特定值

来自分类Dev

如何从Node.js中的数组中删除特定值

来自分类Dev

获取数组 Angular 2 的值