カスケード選択オプションがあり、正常に動作しています。最初の選択オプションを変更すると、2番目の選択オプション(サブカテゴリ)が変更されます。したがって、カテゴリ(最初の選択)を変更した場合、2番目の選択では、そのオプションの位置に移動します。選択を変更した後でインデックスによってトラックがリセットされない
私が作成したこの例を確認して、オプションを変更してみてください。 2番目のselecオプションでは、前のカテゴリで選択されていた位置インデックスが保持されます。カテゴリを変更すると0になりません。
リンク:http://jsfiddle.net/Fqfg3/28/
のJs:
var app = angular.module('app', []);
app.controller('PeopleCtrl', function ($http,$scope) {
vm = this;
vm.options = [
{
"_id": "1",
"label": "Category 1",
"childs": [
"Category 1 -> Subcategory 1",
"Category 1 -> Subcategory 2",
"others"
]
},
{
"_id": "2",
"label": "Category 2",
"childs": [
"Category 2 -> Subcategory 1",
"Category 2 -> Subcategory 2",
"others"
]
},
{
"_id": "3",
"label": "Category 3",
"childs": [
"Category 3 -> Subcategory 1",
"Category 3 -> Subcategory 2",
"others"
]
}];
});
HTML:
<div ng-app="app" ng-controller="PeopleCtrl as ctrl" class="container">
{{ctrl.options}}
<div class="form-group question-wrapper">
<select class="form-control"
name="category"
ng-options="option.label for option in ctrl.options track by option._id"
ng-model="ctrl.supportMail.selected">
</select>
</div>
<div class="form-group question-wrapper">
<select id="sub" class="form-control"
name="subcategory"
>
<option ng-repeat="child in ctrl.supportMail.selected.childs track by $index">{{child}}</option>
</select>
</div>
</div>
選択ボックスで空白のオプションの代わりにデータが表示されている可能性はありますか? –
最初のオブジェクトを意味しますか?はいの場合、私は答えを編集しました。 – developer033
はい、カテゴリとサブカテゴリに最初のオプション/オブジェクトが表示されますが、難しい部分があります。オンラインで見つかった解決策は、インデックスを使用して最初のものを取得しますが、問題を作成し、サブカテゴリ、例えば –