我在IE11中面临非常奇怪的问题。我使用get方法获取一些数据,这在Chrome和Mozilla中工作得很好,但在IE11中它引起了问题。
这是我的HTML标记:
<select multiple class="form-control" size="9" ng-model="form.selectedSrcObj.srcID" ng-change="getEnt()">
<option value="{{f.id}}" ng-click="getEnt(f)" ng-repeat="f in fields" ng-selected="f.dflt_ind">
{{f.nm}}
</option>
</select>
在IE11中,它呈现如下:
{{f.nm}}
{{f.nm}}
{{f.nm}}
{{f.nm}}
{{f.nm}}
{{f.nm}}
{{f.nm}}
而不是Chrome和Mozilla(正如预期的那样):
File 1
File 2
File 3
File 4
File 5
File 6
File 7
最奇怪的是我在IE11控制台中看不到任何错误,当我检查DOM时,我可以看到如上所示的正确数据。此外,我可以在IE11的响应正文中看到整个JSON响应。
最初我认为它可能是IE11中的缓存问题(通过Angularjs' $http.get only executed once in IE11阅读)并且我在标题中包含了以下META:
<meta http-equiv="cache-control" content="no-cache" />
但这也行不通。然后我尝试包括以下polyfills,但也不起作用:
<!--[if gte IE 8]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/json3/3.3.2/json3.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui/0.4.0/angular-ui-ieshiv.min.js"></script>
<script src="https://github.com/remy/polyfills/blob/master/EventSource.js"></script>
<![endif]-->
您能告诉我可能的原因以及解决方法。我对AngularJS不太熟悉。在此先感谢。
答案 0 :(得分:0)
尝试下面的bindonce,
<select bindonce multiple class="form-control" size="9" ng- model="form.selectedSrcObj.srcID" ng-change="getEnt()">
<option value="{{f.id}}" ng-click="getEnt(f)" ng-repeat="f in fields" ng- selected="f.dflt_ind" bo-text="f.nm">
</option>
</select>
答案 1 :(得分:0)
我意识到这个问题是在几年前被问到的,但我遇到了一个非常类似的问题,并且能够解决它。
IE11在文字文本中使用ng-repeat中的{{ value }}
语法渲染值,而不是像你在问题中提到的那样呈现角度。迭代我的对象不是JSON,而只是一个正常的对象数组。
在{{ value }}
文本中检查DOM显示IE正在文本中间强制换行,因此它呈现为
{{
value }}
有一个简单的解决方法:删除{{ value }}
并将其替换为元素上的ng-bind="value"
。但我仍然不明白IE以这种方式呈现它的根本原因。希望这有助于某人!