【问题标题】:AngularJS blank default in selectAngularJS空白默认选择
【发布时间】:2014-10-15 03:23:27
【问题描述】:

我有一个带有六个选项的选择元素,第一个是空白选项:

<select name="method-rcvd" class="form-control" ng-model="workRequest.ReceiveMethod" required >
    <option value="" ng-selected="true"></option>
    <option value="1">Phone</option>
    <option value="2">Email</option>
    <option value="3">Fax</option>
    <option value="4">Mail</option>
    <option value="5">Other</option>
</select>

作用域上是绑定到这个选择的对象属性:

$scope.workRequest.ReceiveMethod = "";

出于某种原因,选择始终默认为“电话”,而不是空白。我希望它默认为空白。当我删除模型绑定时,它会起作用,所以我知道它与此有关,但它需要被绑定。在我看来,这应该相对简单,但我很难让这个简单的事情发挥作用。

当我在select下面吐出ReceiveMethod的值时:

Receive Method: {{workRequest.ReceiveMethod}}

它始终默认为“1”。我怎样才能让它默认为第一个选项,即空白选项?

谢谢。

【问题讨论】:

标签: javascript angularjs


【解决方案1】:

您是否在控制器中设置了默认值?

如果您将默认值设置为 0 而不是 '',会发生什么情况?

应该可以,但必须在workRequest.ReceiveMethod 上设置另一个值

【讨论】:

  • 是的,我将控制器中的默认值设置为空字符串。将其设置为零的问题是我正在使用表单验证,因此需要此下拉菜单,并且零值会验证元素,但它不应该。
  • 如果您将其设置为0,它仍然会在页面加载时选择1,还是保持默认设置?
【解决方案2】:

我通过使用 ng-init 指令来完成这项工作,如下所示:

<select name="method-rcvd" class="form-control"
        ng-model="workRequest.ReceiveMethod"
        ng-init="workRequest.ReceiveMethod = ''" required >
    <option value=""></option>
    <option value="1">Phone</option>
    <option value="2">Email</option>
    <option value="3">Fax</option>
    <option value="4">Mail</option>
    <option value="5">Other</option>
</select>

你也不需要

ng-selected="true"

在第一个(空白)选项中。

【讨论】:

    猜你喜欢
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-12
    • 1970-01-01
    • 2015-10-08
    相关资源
    最近更新 更多