ここでは、基本的に3つの選択リストをセットアップします
<label for="organization">Organization</label>
<select ng-change="setOrganization()" ng-model="form.organization"
ng-options="o.name as o.displayName for o in organizations" required></select>
<label for="board">Board</label>
<select ng-change="setBoard()" ng-model="form.board"
ng-options="b.id as b.name for b in boards" required></select>
<label for="board">List</label>
<select ng-change="setList()" ng-model="form.list"
ng-options="l.id as l.name for l in lists" required></select>
JS:
$scope.setOrganization = function(){
$scope.lists = {};
mySerivce.get('....', function(boards){
$scope.boards = angular.fromJson(boards);
$scope.$apply();
});
};
$scope.setBoard = function(){
mySerivce.get('...', function(lists){
$scope.lists = angular.fromJson(lists);
$scope.$apply();
});
};
したがって、組織が選択されると、ボードを取得し、2 番目の選択フィールドにボード データを入力します。ボードが選択されると、ボードに割り当てられたすべてのリストが取得され、3 番目の選択フィールドにこのデータが設定されます。すべての選択フィールドが選択された値を持つまで、フォームは無効のままです。
ユーザーが組織を変更すると、すべてのフィールドがクリアされます。ただし、form.$valid オブジェクトは依然として true です。問題はどこだ?フィールドが必須であるため、値が選択されていない場合、フォームは無効である必要があります。何か案は?