2016-04-27 5 views
0
コード上記
<div style="z-index: 1; position: absolute"ng-show="ctrl.company.selected"> 
    <div style="" ng-repeat="Asset in ctrl.company.selected.Assets"> 
     <div class="pd-5"style="width: 300px; background-color: white; border-bottom: gray solid"> 
      <label> 
       <input type="checkbox" ng-model="check"/> 
       {{Asset}} 
      </label> 
     </div> 
     <div ng-show="check">{{Asset}}</div> 
    </div> 
</div> 

は、今私がチェックされている資産の配列を格納したいチェックの表示資産である使用angularjsがチェックされている資産を保管したい

答えて

2

ここで働いている、これを試していますのでng-true-valueng-false-valueの使い方はfiddle

<div style="z-index: 1; position: absolute"> 
<div style="" ng-repeat="(index,val) in Assets"> 
    <div class="pd-5"style="width: 300px; background-color: white; border-bottom: gray solid"> 
     <label> 
      <input type="checkbox" name="check[]" ng-click="addToSelectedOrNot(index,flag,val)" ng-true-value="true" ng-false-value="false" ng-model="flag"/> 
      {{val}} 
     </label> 
    </div> 
</div> 
<div ng-show="selectedAssets.length>0"> 
<div>----------------Selected------------------</div> 
<div>{{selectedAssets}}</div> 
</div> 

コントローラ

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

function MyCtrl($scope) { 
$scope.Assets = ['asset1','asset2','asset3']; 
$scope.selectedAssets = []; 

$scope.addToSelectedOrNot = function(index,flag,val){ 
    if(flag == "true"){ 
    $scope.selectedAssets.push($scope.Assets[index]); 
    }else if(flag == "false"){ 
    angular.forEach($scope.selectedAssets, function(selVal,selKey) 
    { 
    if(val == selVal){ 
     $scope.selectedAssets.splice(selKey,1); 
    } 
    }); 
    } 
    } 
} 
+0

私のためにたくさんの仕事をありがとうと思っていませんでした。私はこのように正確に欲しいです。 –

+0

@zubairsadiq最新のコードを見てください、前の小さなバグがありました。 –

-1
<input type="checkbox" ng-model="check" ng-change="store($index)"/> 

あなたのコントローラ:

$scope.storedData = []; 
$scope.store = function(index) { 
    $scope.storedData.push($scope.ctrl.company.selected.Assets[index]); 
    }; 

あなたの$ scope.ctrl.company.selected.Assetsが配列型であると仮定します。

このコードはテストされていません。私はここで構築しようとしている論理を理解してくれることを願っています。

+0

あなた私はそれをオフにした場合、ロジックは含まれていません。 – Walfrat

+0

@Walfratはい、あなたは正しいです。私は初心者です。 –

0

別の解決策:

<input type="checkbox" ng-model="Asset.checked" ng-true-value="true" ng-false-value="false" /> 

次にあなたがチェックした属性に基づいて資産をフィルタリングします。チェックした属性を削除して、サーバーにシリアル化して適切なデータセットを取得します。

あなたがそれらを指定しない場合は、文字列値として「真」と「偽」は

関連する問題