【问题标题】:Trying to display value in my select option试图在我的选择选项中显示值
【发布时间】:2022-11-05 04:37:36
【问题描述】:

当我尝试显示我的值时,选择框始终为空。该值为整数 0 1 2 3 。在这种情况下,它应该显示 0,但该框是空的。我究竟做错了什么? vmDialog.dataModel.requestType 值等于 0 整数,但不显示。

<select class="form-control " name="requestType" ng-model="vmDialog.dataModel.requestType">
                  <option value=0>0</option>
                  <option value="{{0}}">0</option>
                  <option value="0">0</option>
                </select>

【问题讨论】:

  • 请显示您对选项数据应该来自何处的逻辑

标签: angularjs select


【解决方案1】:

首先有一个简单的 HTML 问题,你需要确保每个选项都有一个唯一的值,到目前为止你已经为所有选项使用了值 0,所以当 requestType 的值为 0 时,UI 不能选择应选择的项目。

如果该值应该是0,1,2,3 之一,那么您需要确保有一个选项可以选择对应的value

  • 您可能想要做的是将选项绑定到视图模型中的数组:

    // on vmDialog
    var requestTypeOptions = [
      { name = 'Zero', value = 0 },
      { name = 'One', value = 1 },
      { name = 'Two', value = 2 },
      { name = 'Three', value = 3 },
    ];
    

    然后在视图中:(使用ng-options

    <select class="form-control"
            name="requestType" 
            ng-model="vmDialog.dataModel.requestType" 
            ng-options="o.value as o.name for o in vmDialog.requestTypeOptions track by o.value | orderby: 'value'" 
            class="form-control input-sm">
    </select>
    

    这里有一篇关于 ng-options 的好文章:https://stackoverflow.com/a/30507651/1690217

    如果您需要自定义模板,也可以使用 ng-repeat:

    <select class="form-control " name="requestType" ng-model="vmDialog.dataModel.requestType">
        <md-option ng-value="o.value" ng-repeat="oin vmDialog.requestTypeOptions | orderBy: 'value'">{{o.name}}</md-option>
    </select>
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-23
    • 1970-01-01
    • 2021-09-04
    • 2019-08-28
    相关资源
    最近更新 更多