对于初学者,我一直试图在较小的情况下重现这个错误但是失败了。 所以,我只是要提出我迄今为止所得到的任何信息。
我有一个调用另一个指令(directiveB)的指令(directiveA)。
directiveB包含<select>
标记ng-model='fileId'
。
选项列表使用基于fileList数组的ng重复填充,并且所选择的集合也设置为变量(selectedFile)。
然后允许用户上传新文件。当通过AJAX API调用上载新文件时,它将返回来自服务器的新文件列表。然后我用返回的列表更新fileList。
我还使用新更新的文件更新selectedFile和fileId。
但是,当fileId更新时,该选项将仅显示{{fileName}},而不是其有界值。单击下拉列表将修复绑定。
<select ng-model='fileId'>
<option ng-repeat="p in fileList" selected={selectedFileId == p.fileId}>{{p.fileName}}</option>
</select>
JS
...
//AJAX call, return a result
s.fileList = result.items;
s.fileId = result.newId;
s.selectedfileId = result.newId;
只是想知道你们是否遇到过类似的问题,因为它只发生在IE中。
答案 0 :(得分:6)
对选项标签使用ng-option属性而不是选项标签上的ng-repeat,并且一切正常。关键考虑因素是使下拉列表的选择值与模型值匹配。
<select ng-model='selectedfileId' ng-options='file.id as file.name for file in fileList' ></select>
更多详细信息:https://docs.angularjs.org/api/ng/directive/ngOptions