具有动态选择字段的表单不会验证

时间:2013-09-13 16:20:47

标签: javascript angularjs angularjs-scope

这里我基本上设置了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();
    });
};

因此,当选择一个组织时,我会获得电路板并使用电路板数据填充第二个选择字段。再次选择电路板时,将获取分配给电路板的所有列表,并使用此数据设置第三个选择字段。在所有选择字段都具有选定值之前,表单仍然无效。

当用户更改组织时,将清除所有字段。但是表单。$ valid对象仍然是正确的。问题出在哪儿?如果没有选择任何值,则表单必须无效,因为字段是必需的。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

尝试此操作,它将验证未设置选择值。很高兴它有效。

mySerivce.get('....', function(boards){
    $scope.boards = angular.fromJson(boards);
    $scope.form.board = null;
    $scope.$apply();
});