【问题标题】:Bug in angular form drop down select box角度形式的错误下拉选择框
【发布时间】:2016-11-13 03:35:42
【问题描述】:

我正在研究一个角形,需要解决一个错误。

这是问题:

1)- 选择类型:value-1

2)- 选择 Data-1 : All Data-1

3)- 选择 Data-2 : All Data-2

4)- 现在将类型更改为:Value-2(而不是 value-1)。

data-1 和 data-2 的字段应该会消失。

5)- 现在再次选择类型为 value-1。

现在再次单击 data-1 或 data-2...您会看到一个空白区域 再次。

我不想要这里的空白空间......

应该回到--选择一个-- 再次...

我附上截图和代码...请看一下。

<form class="addAlert settings_form" ng-submit="createAlert(newAlert)">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
                        aria-hidden="true">×</span></button>
                <h4 class="modal-title" id="myModalLabel">Create a New Model</h4>
            </div>
            <div class="modal-body">
                <div class="form_fieldset">

                    <div class="form_item">
                        <label for="title">Name</label>
                        <input name="title" type="text" class="form-input title" required placeholder="Alert Name" ng-model="newAlert.title">
                        <div class="error"></div>
                    </div>


                    <div class="form_item">
                        <label for="alertformat">Type</label>
                        <select class="form-input alertformat"
                                name="alertformat" ng-model="newAlert.alertType"
                                ng-init="newAlert.alertType='Threshold'">
                            <option value="Threshold" selected>Value-1</option>
                            <option value="Pipeline Failure">Value-2</option>
                        </select>
                    </div>

                    <div class="form_item" ng-if="newAlert.alertType !='Pipeline Failure'">
                        <label for="alertformat">Data-1 </label>
                        <select class="form-input alertformat" name="alertformat"
                                ng-model="newAlert.site" required>
                            <option value="" disabled>-- Choose one --</option>
                            <option ng-value="-1">All Data-1</option>
                            <option ng-repeat="item in assetsData" ng-value="{{item.sitename}}">
                                {{item.sitename}}
                            </option>
                        </select>
                    </div>
                    <div class="form_item" ng-show="newAlert.site" ng-if="newAlert.alertType !='Pipeline Failure'">
                        <label for="alertformat">Data-2</label>
                        <select class="form-input alertformat" name="alertformat" ng-model="newAlert.asset" required>
                            <option value="" disabled>-- Choose one --</option>
                            <option ng-value="-1">All Data-2</option>
                            <option ng-repeat="item in assetsData | filter:newAlert.site" ng-value="{{item.sitename}}">
                                {{item.name}}
                            </option>
                        </select>
                    </div>

                    <div class="form_item">
                        <label for="alertformat">Color</label>
                        <div class="severity">
                        <input type="radio" class="radioBtnClass" name="numbers" value="Red"checked required>
                        <span>Red</span>
                        </input>

                        <input type="radio" class="radioBtnClass" name="numbers" value="Ember">
                        <span>Blue</span>
                        </input>
                         </div>
                    </div>

                    <div class="form_item">


                        <label for="users">Users</label>
                        <div class="user_select">
                              <span ng-repeat="user in userList" style="display:block">
                               <input class="alert_user_class" value="{{user.pk}}" type="checkbox">
                                {{user.email}}
                                  </input>
                              </span>
                        </div>


                    </div>

                </div>
            </div>

        </form>

【问题讨论】:

  • 出现这个空白是因为选择的模型值不是它的选项之一,例如。如果您的模型值为dummy,并且在选择选项中您没有选项值dummy,则空白空间来
  • 创建一个 plunker 或 fiddle
  • 在您的情况下,newAlert.asset 模型应该始终被分配一个底层选择包含作为选项的值
  • @ShintuJoseph...任何想法,我怎样才能实现...如果你看一下代码...然后在下拉“类型”中我使用的唯一指令是 ng -model, ng-init....我该怎么做在更改事件选择值时...

标签: javascript jquery angularjs angularjs-directive frontend


【解决方案1】:

在您的“类型”下拉列表的更改事件中,您需要分配 $scope.newAlert.site = '';$scope.newAlert.asset = '',因为“选择一个”选项的值为 Empty String("")。

【讨论】:

  • 我怎样才能做到这一点......如果你看一下代码......然后在下拉“类型”中,我使用的唯一指令是 ng-model、ng-init .. ..我该怎么做在更改事件选择值时...
  • 使用 ng-change 调用可以为您执行此操作的函数。
猜你喜欢
  • 2021-10-31
  • 2016-03-01
  • 2016-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-27
  • 2018-06-13
  • 2021-08-12
相关资源
最近更新 更多