【问题标题】:Angular select keeps generating default missing option角度选择不断生成默认的缺失选项
【发布时间】:2016-12-14 03:57:05
【问题描述】:

我有一个 selectagGrid 内呈现。没有什么特别复杂的。

<select ng-model="data.stdPayerClassFnbr" ng-change="vm.save(data)" style="width: 100%"
        ng-options="item.stdPayerClass for item in vm.payerClassList track by item.id">
</select>

这很疯狂;我不断收到缺失值选项:

<option value="?" selected="selected"></option>

即使data.stdPayerClassFnbr 的值存在于呈现的选项列表中:

<option value="1" label="TBD">TBD</option>

data.stdPayerClassFnbritem.id的底层数据类型都是int;但是,我尝试通过在绑定它们之前对它们的值执行map 来使它们都成为string。那没有帮助。我必须把这个select 配置错了。

我也尝试过ng-repeat 方法:

<select ng-model="data.stdPayerClassFnbr" ng-change="vm.save(data)" style="width: 100%">
    <option ng-repeat="item in vm.payerClassList" value="{{item.id}}">{{item.stdPayerClass}}</option>
</select>

这也无济于事。

【问题讨论】:

    标签: angularjs drop-down-menu ag-grid


    【解决方案1】:

    确保您的 stdPayerClassFnbr 模型对象与 payerClassList[x] 项目具有相同的属性。尤其是属性idstdPayerClass

    【讨论】:

      【解决方案2】:

      我发现了问题。这是track by 表达式。由于我绑定到从查找返回的对象数组,因此在选择或查找值时,它通过引用查找整个对象。删除 track by 表达式导致绑定直接作用于数值:

      <select ng-model="data.stdPayerClassFnbr" ng-change="vm.save(data)" style="width: 100%"
              ng-options="item.id as item.stdPayerClass for item in vm.payerClassList">
      </select>
      

      这会生成一个非常不同的选项列表:

      <option value="number:1" label="TBD" selected="selected">TBD</option>
      

      我希望这对将来的人有所帮助!有一天它甚至可能对我有所帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-06-19
        • 2016-01-05
        • 2011-09-08
        • 1970-01-01
        • 2022-11-26
        • 2018-03-07
        • 1970-01-01
        相关资源
        最近更新 更多