以下は機能しますが、非常に扱いにくいことに注意してください。後で後悔する可能性がある、よりタイトにするためのヒントや落とし穴を探しています。
ネストされたオブジェクトの平坦化された配列:
$scope.parents =
[
{"name":"parent 1", "id":"1",
"children": [
{"name":"child 1a", "id":"1a", "parentid":"1"}, {"name":"child 1b", "id":"1b", "parentid":"1"}
]
},
{"name":"parent 2", "id":"2",
"children": [
{"name":"child 2a", "id":"2a", "parentid":"2"}, {"name":"child 2b", "id":"2b", "parentid":"2"}
]
}
];
<select>
1 つは親用、もう 1 つは子用の 2 つのオブジェクトに入力し、それらの階層関係を維持する必要があります。そのため、親が選択されると、その下にない子は除外されます。
ng-options="item.id for item in children | filter:{'id': data.parents.id}"
子が選択されている場合と同様に、親はモデル全体で自動的に認識されます
$scope.parents = $filter('filter')($scope.parents, {id: $scope.data.children.parentid});
何かが欠けているような気がします。