選択したチェックボックスオブジェクトデータのみをフォーム送信時に配列に渡す必要があります。配列内のオブジェクトとして選択したチェックボックスとグループ名をオブジェクトとして送信する方法
JSONデータを返すサービス:
[
{
"groupName" : "A",
"groups": [
"Painting",
"coloring"
]
},
{
"groupName" : "B",
"groups": [
"drawing",
"writing"
]
}
]
サービスが期待フォーマット、ユーザが選択したチェックボックスのカップルやフォームを送信:
{
"groups": [
{
"category": "A",
"subCategory": "coloring"
},
{
"category": "B",
"subCategory": "writing"
}
]
}
マイコントローラ:
<div ng-controller="groupCtrl">
<form class="form" name="form" role="form" ng-submit="groupData()" autocomplete="off" novalidate>
<div ng-repeat="groups in groupsList">
<p class="category">{{groups.groupName}}</p>
<p ng-repeat="group in groups.groups" >
<input type="checkbox" id="group" name="{{group}}" class="group" value="{{group}}" ng-model="groups"> {{group}}
</p>
</div>
<button type="submit" class="button">Save</button>
</form>
コントローラ:
angular.module('myApp')
.controller("groupCtrl", function($rootScope, $scope, $state, $http) {
$http.get('group.json').success(function(groupsList) {
$scope.groupsList = groupsList;
});
$scope.groups = {
}
$scope.groupData = function() {
$http.post('<service endpoint>', $scope.groups, {
})
.success(function(){
console.log("success");
})
.error(function(){
console.log("failed.");
});
}
});
私は新しいです。コントローラの配列オブジェクトを作成し、配列のオブジェクトをユーザの選択/非選択チェックボックスで更新する方法のヘルプを探しています。
実例を共有してくれてありがとう!それは本当に役立ちます。現在、各グループで選択できるオプションは1つだけです(チェックボックス)。同じグループ内の複数のオプションを選択するソリューションを知っていますか(例:グループからペイント、色付けオプションを選択) – Nikki
はい、私の更新された回答を参照してください。あなたの元の質問を誤解して、グループごとに1つのサブカテゴリを一度に選択したかっただけです。 JSFiddleのバージョン4では、各グループに含まれる数のサブカテゴリを選択できます。私は答えを説明に加えました。 – Espen
ありがとう!以下のフォーマットでサービスが期待されているので、ポストjsonデータを以下のように更新するオプションがありますか? {"カテゴリ": "A"、 "サブカテゴリ": "ペインティング"}、{"カテゴリ": "A" 、 "subCategory": "Writing"}]} – Nikki