我们正面临与选择字段的空选项的多个问题。问题与选择字段的空选项
我的渲染代码如下:
<select ng-switch-when="select" id="{{field.name}}" ng-model=data[field.name] >
<option ng-repeat="option in field.options" value="{{option.value}}">{{option.description}}
</select>
这里,我们的用户界面是动态生成和选项也填充动态使用REST的API。 Select字段绑定到一个数据对象,该对象也使用最初可能具有空值的REST调用填充。
问题
- 它会自动添加它不是必需的,选择任何一个非空选项后消失一个空的选择。
- 此外,它正显示出一些特定的领域
TypeError: Cannot call method 'prop' of undefined at selectDirective.link.ngModelCtrl.$render (lib/angular/angular.js:20165:47) at Object.ngModelWatch (lib/angular/angular.js:16734:14) at Scope.$get.Scope.$digest (lib/angular/angular.js:11800:40) at Scope.$get.Scope.$apply (lib/angular/angular.js:12061:24) at done (lib/angular/angular.js:7843:45) at completeRequest (lib/angular/angular.js:8026:7) at XMLHttpRequest.xhr.onreadystatechange (lib/angular/angular.js:7982:11)
我怀疑是使用下面的角度
function setupAsSingle(scope, selectElement, ngModelCtrl, selectCtrl) {
ngModelCtrl.$render = function() {
var viewValue = ngModelCtrl.$viewValue;
if (selectCtrl.hasOption(viewValue)) {
if (unknownOption.parent()) unknownOption.remove();
selectElement.val(viewValue);
if (viewValue === '') emptyOption.prop('selected', true); // to make IE9 happy
} else {
if (isUndefined(viewValue) && emptyOption) {
selectElement.val('');
} else {
selectCtrl.renderUnknownOption(viewValue);
}
}
代码以下错误......
,并在打破此行
if (viewValue === '') emptyOption.prop('selected', true); // to make IE9 happy
,因为空白选项在稍后阶段由REST API提供,直到初始渲染才可用。
请提供一些实施建议和一些替代方法。
P.S:我不能在选择时使用ng-option,因为它会发出索引值,我需要一些DOM操作的实际值。