【发布时间】:2016-12-25 15:13:44
【问题描述】:
我有一个带有下拉值的输入字段:A、B、... Z,称为ng-model=model.all。
如果ng-model=model.all 的值等于Option Z,我想ng-show 另一个<div>。这部分工作正常。
但问题是:
仅当从第一个值中选择除 Option Z 之外的任何其他值时,我如何才能显示 Acat <div>?我试过 ng-show="model.all != 'Option Z' ,但即使没有选择任何内容,它也会显示 <div> 。只有在选择除选项z 以外的东西时,才需要显示另一个div。
如您所见,我的 Bcat 仅在 Acat 不为空时才显示,这没关系。
但是,如果我在第一个中更改我的选择并且选择 Option Z,那么其他两个 div 仍然保持它们的值,所以目标是在选择 Option Z 时清除它们,反之亦然,如果选择了其他东西相应地,其他 div 填充了值,如果用户决定更改选择并选择 Option Z,那么之前 div 中的这些值也应该被清除。
<div class="form-group">
<label class="control-label">ALL</label>
<ui-select ng-model="model.all" name="all">
...
</ui-select>
</div>
<div class="form-group" ng-show="model.all == 'Option Z'">
<label>Z categories</label>
<ui-select name="Zcat" ng-model="model.z">
...
</ui-select>
</div>
<div class="form-group" ng-show="???">
<label class="control-label">Category A</label>
<ui-select name="Acat" ng-model="model.a">
...
</ui-select>
</div>
<div class="form-group" ng-show="!model.a">
<label class="control-label">Category B</label>
<ui-select name="Bcat" ng-model="model.b" >
...
</ui-select>
</div>
更新:
在 Mosh Feu 的回答之后添加一个简短的注释:
正如您在屏幕截图 http://imgur.com/gSYztLq 中看到的那样,这永远不会发生。
我通过 {"all": "Option Z", "z": "Option Z1"}
或 {"all": "Option A", "a": "Option A1", "b": "Option B1"} 。
这不被接受:{"all": "Option A", "a": "Option A1", "b": "Option B1", "z": "null"}
也不是这个:{"all": "Option Z", "z": "Option Z1", "a": "null", "b": "null"}.
【问题讨论】:
标签: javascript html angularjs ng-show angular-ng-if