2017-02-03 11 views
2

少し概要: こんにちは、私は学校のコンピュータサービスオフィスで借りることができる項目を選択できる学校プロジェクトに取り組んでいます。私は学生/教員がプロフィール情報を挿入できる申請書を記入しました。私はanularjsのチェックボックスに関する問題を抱えています。角度のjsにチェックボックスのIDを追加する方法

チェックボックスのIDを合計/合計して、配列ではなく単一のintとしてデータベースに挿入できるようにする必要があります。ここにコードといくつかの情報があります。

 $scope.chkItems = [ 
 
     { 
 
      id: 1, 
 
      name: 'Laptop', 
 
      value: null, 
 

 
     }, { 
 
      id: 2, 
 
      name: 'Headset', 
 
      value: null 
 
     }, { 
 
      id: 4, 
 
      name: 'Projector', 
 
      value: null 
 
     }, { 
 
      id: 8, 
 
      name: 'Tablet', 
 
      value: null 
 
     }, { 
 
      id: 16, 
 
      name: 'Speakers', 
 
      value: null 
 
     }]; 
 

 

 

 
$scope.save = function() { 
 

 
       var chkItemsValue = ''; 
 

 
       $scope.chkItems.forEach(function (Item) { 
 

 
        if (Item.value) { 
 
         chkItemValue += chkItem.id; 
 
        } 
 
       }) 
 
       
 
       }
<md-input-container class="md-block" flex-gt-sm> 
 
<label class="force-input-label">Items</label> 
 
</br> 
 
<div ng-repeat="chkItem in chkItems"> 
 
<md-checkbox name="chkItem.name" ng-model="chkItem.value" ng-true-value=1 ng-false-value=0>{{chkItem.name}} 
 
</div> 
 
</md-input-container>

は、私は、データベースに値を挿入することができますが、値ではなく、私は、出力のような配列を取得合計値を取得するとは異なります。

  • 現在、私はこの取得しています:私は{ノートパソコン、プロジェクター、スピーカー} をチェックすると、合計は私が欲しいもの1416

    • だろう

    を:

{ラップトップ、プロジェクター、スピーカー} をチェックすると、合計は21

になります

私はangularjsとウェブ開発を初めて利用しています。あなたの入力は非常に高く評価されています!

ありがとうございます!

答えて

0

クイック答えは、文字列

var chkItemsValue = 0 // not '' 

Array.prototype.reduce答えとしてあなたの迅速な応答を

var chkItemsValue = $scope.chkItems.reduce((count, item) => { 
    return count + (item.value ? item.id : 0) 
}, 0) 
+0

おかげで、あなたのカウンタを初期化しないでください。 :) – BoogerT

+0

あなたの素早い返答をありがとう。 :) WOW。これをチェックするのに数日かかりました。そして私は古いコードをチェックして、chkItemsValueはゼロに設定されています。たぶん私は見つけると交換を使用して変更されました。 ありがとうございます。この問題はすでに解決されています! – BoogerT

関連する問題