$无效在ng-if条件下工作

时间:2016-10-11 16:19:52

标签: angularjs angular-material angular-ngmodel angularjs-ng-form

在Angular 1.5中,我有以下设置:

<form name="linksForm">
  <md-input-container>
    <label>Region</label>
    <md-select ng-model="$ctrl.user.region">
      <md-option ng-repeat="region in $ctrl.allRegions" value="{{region.id}}" ng-bind="region.name"></md-option>
    </md-select>
  </md-input-container>

  <md-input-container ng-if="$ctrl.user.region">
    <label>Territory</label>
    <md-select ng-model="$ctrl.user.territory" name="territory" required>
      <md-option ng-repeat="territory in $ctrl.getTerritories($ctrl.user.region)" value="{{territory.id}}" ng-bind="territory.name"></md-option>
    </md-select> 
  </md-input-container>

  <md-input-container ng-if="linksForm.territory.$valid">
    <label>House</label>
    <md-select ng-model="$ctrl.user.house">
      <md-option ng-repeat="house in $ctrl.allHouses" value="{{house.id}}" ng-bind="house.name"></md-option>
    </md-select>
  </md-input-container>
</form>

这是逻辑:

  1. 首先,只有区域列表可见。
  2. 选择某个地区后,将显示地区列表,其中包含所选地区的地区列表。
  3. 选择区域后,将显示房屋清单。
  4. 到目前为止,这么好。事情有效。唯一的问题是当我改变区域时,会发生以下情况:

    1. 区域列表更改,由于ngModel无法与任何新选项匹配,因此区域选择器现在未设置。这是按预期工作的,但是......
    2. 房屋清单不会消失,尽管需要territory选择器,因此领土字段应无效。

0 个答案:

没有答案