角度选择保持生成默认缺失选项

时间:2016-08-08 11:31:00

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

我在select内呈现agGrid。没有什么特别复杂的。

<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;但是我已经尝试通过在绑定它们之前对它们的值执行string来使它们map。这没有用。我必须配置这个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>

这也无济于事。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我发现了这个问题。这是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>

我希望这有助于将来的某些人!它甚至可能有一天帮助我!