【问题标题】:IE10 Select tag show up with curly bracketsIE10 选择标签以大括号显示
【发布时间】:2015-02-13 09:24:16
【问题描述】:

首先,我一直试图在较小的情况下重现此错误,但失败了。 所以我只想把我目前掌握的所有信息都公布出来。

我有一个指令 (directiveA) 调用另一个指令 (directiveB)。 指令B 包含一个带有ng-model='fileId'<select> 标签。 选项列表由基于 fileList 数组的 ng-repeated 填充,所选设置也为变量 (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 中。

【问题讨论】:

标签: angularjs internet-explorer-10


【解决方案1】:

对 select 标签使用 ng-option 属性,而不是在 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

【讨论】:

    猜你喜欢
    • 2019-04-01
    • 1970-01-01
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    • 2014-06-30
    • 2021-05-03
    • 1970-01-01
    • 2017-10-31
    相关资源
    最近更新 更多