根据另一个选择的值进行选择

时间:2017-12-12 10:44:20

标签: angularjs angular-material

我有两个md-select如下:

<div layout=column>
    <md-input-container flex><label for=organizations>Organization</label>
            <md-select ng-model="dg.selectedOrganization" name=organizations aria-label="Organizations" required>
                    <md-option ng-value=organization ng-repeat="organization in dg.organizations"> {{organization.title}} </md-option>
            </md-select>
            <div ng-messages=dg.myForm.organizations.$error>
                    <div ng-messages-include=messages/messages.html></div>
            </div>
    </md-input-container>
    <md-input-container flex><label for=rules>Role</label>
            <md-select ng-model="dg.selectedRule" name=rules aria-label="Rules" required>
                    <md-option ng-value=rule ng-repeat="rule in dg.selectedOrganization.rules"> {{rule.title}} </md-option>
            </md-select>
            <div ng-messages=dg.myForm.rules.$error>
                    <div ng-messages-include=messages/messages.html></div>
            </div>
    </md-input-container>
</div>

因此,当我从第一个md-select(组织)中选择一个值时,dg.selectedOrganization将获得所选值,第二个md-select将根据所选值进行填充。然后当我在第二个md-select(规则)dg.selectedRule中选择某些内容时,将获得所选值。

我遇到的问题是当我更改dg.selectedOrganization时,dg.selectedRule将始终具有旧值,直到我选择一个新值,通常dg.selectedRule应为null,然后才选择任何更改dg.selectedOrganization后的值。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

为dg.selectedOrganization select

添加onChange处理程序

当onChange事件触发时,更新dg.selectedOrganization.rules并将dg.selectedRule设置为dg.selectedOrganization.rules中存在的值。如果要将其设置为空值,则需要确保选择中存在空值,或者您可以将其设置为第一个可用选项。