2016-12-11 20 views
0

Angular JSを使用してREST APIから出力応答(JSON)を表示しています。私はリストされたすべての結果に対してチェックボックスのオプションをユーザーに提供する予定です。selectall/deselectallチェックボックスを実装するには固執しています。すべての実装を選択解除します。selectallを実装する方法/すべてのチェックボックスを選択解除します。すべてのIdは.Iはそれを角度の道Angular JS select all/Deすべてのチェックボックスを選択する選択した情報を取得する方法

を行うのが大好きだ。これは、これはREST

{ 
    "items": [{ 
     "customerId": "ABC", 
     "type": "D" 
    }, { 
     "customerId": "DEF", 
     "type": "A" 
    }], 
    "more": false 
} 
からの私のJSONレスポンスである私のコントローラのコール

$http.post('http://localhost:8080/services/search/'+id+"", searchCriteria).then(function(response) { 
    $scope.searchresponse = response.data.items; 
    if($scope.searchresponse.length != 0){ 
     console.log($scope.searchresponse); 
    } 
    else { 
     $scope.showerror = true; 
     $scope.ErrorMsg ="There is no record matching your criteria." 
    } 
    }); 

で選択したのJSONオブジェクトをチェックボックス情報と形成

これは私のHTML

<tr ng-repeat="details in successresponse"> 
     <td align="left" class="validationMsg"> 
      <input type="checkbox" name="entireday" id="entireday"> 
      {{details.customerId}} 
      {{details.type}} 
     </td> 
    </tr> 

である私は、すべて/オプションの選択を解除し、選択された顧客IDを取得し、選択実装し、JSONオブジェクト

答えて

1

は、検索応答の各項目で選択したフィールドを追加形成したいと思います:

$http.post('http://localhost:8080/services/search/'+id+"", searchCriteria).then(function(response) { 

    if (response.data && response.data.items.length != 0) { 
     $scope.searchresponse = response.data.items.map(function (x) { 
      x.selected = false; 
      return x; 
     }); 
     console.log($scope.searchresponse); 
    } 
    else { 
     $scope.showerror = true; 
     $scope.ErrorMsg ="There is no record matching your criteria." 
    } 
}); 

テンプレート:

<tr ng-repeat="details in successresponse"> 
    <td align="left" class="validationMsg"> 
     <input type="checkbox" name="entireday" id="entireday" 
       ng-model="details.selected"> 
     {{details.customerId}} 
     {{details.type}} 
    </td> 
</tr> 

すべて/デSEを選択します

$scope.selectAll = function() { 
    angular.forEach($scope.searchresponse, function (x) { 
     x.selected = true; 
    }); 
} 

$scope.deselectAll = function() { 
    angular.forEach($scope.searchresponse, function (x) { 
     x.selected = false; 
    }); 
}; 

をそして、選択された値を取得する:すべてをLECT、あなたが書くことができ、我々は、コントローラ内部のチェックボックスを設定する必要がありますなぜ

function getSelected() { 
    return $scope.searchresponse.filter(function (x) { 
     return x.selected; 
    }); 
} 

// alternative implementation 
var getSelected = [].filter.bind(
    $scope.searchresponse, 
    function (x) { return x.selected; }); 
+0

を。 getselected関数を呼び出してコントローラ内の値を取得し、customeridのみを含むJSONオブジェクトを作成する方法 – Praveen

+0

コントローラのチェックボックスを初期化する必要があります。これは、RESTエンドポイントから最初の値セットを取得するためです。 getSelectedを呼び出して、必要な任意の点で選択された項目をリストから取得することができます。たとえば、別のRESTエンドポイントを呼び出す場合は、単に顧客IDを取得するために、 'data = getSelected()。map(function(x){return x.customer_id;}); 'とすることができます。また、あなたのOPには非常に少ないコードしかありませんでした。詳細を知りたい場合は、より詳細な情報を提供する必要があります。 – 2ps

+0

値を取得しようとしたときにこのエラーが発生しました - nullまたは未定義のArray.prototype.filterが呼び出されました – Praveen

関連する問題