我对AngularJS / IE9有疑问。
我有患者名单的模态窗口。
<div class="modal-header">
<h3 class="modal-title">Patient list</h3>
</div>
<div class="modal-body">
<div>
<input class="form-control" ng-model="searchText"/>
</div>
<div class="col-md-12">
<select size="15" class="list-group">
<option ng-repeat="patient in patientList | filter:searchText" ng-click="..">
{{patient.patientName}}
</option>
</select>
</div>
用$ http工厂
加载的患者列表.factory('patientService', function ($http) {
return {
getPatientList: function () {
return $http.get("Api/Patient/GetFullPatientList")
.then(function (results) {
return results.data;
}, function (results) {
console.log("Error: " + results.data + "; " + results.status);
});
};
因此,此服务注入PatientController
function PatientController($scope, $modalInstance, patientService) {
$scope.patientList = patientService.getFullPatientList();
}
在Chrome,FF,Safari中,我可以在UI上正确查看患者列表框,但在IE9中,我会看到以下屏幕:http://take.ms/m0mFz 只显示列表项中的第一个符号。
当我在(例如)简单列表上替换列表框时 - 一切正常。
我认为,这是因为数据加载了异步调用,IE没有刷新数据。 所以,我试着这样做:
function PatientController($scope, $modalInstance, patientService) {
$scope.patientList = patientService.getFullPatientList().then(function(data){
$scope.patientList = data;
$scope.$apply();
});
}
但它也没有带来结果。
请帮助或建议我:) 谢谢!
答案 0 :(得分:0)
问题在于列表框显示不正确。默认情况下,在IE9中,未指定选择样式中的“display”属性。
我用JQuery代码解决它:
patientService.getFullPatientList().then(function(data) {
$scope.patientList = data;
$('.list-group').width('95%'); //SOLVE
});