1

我正在使用角度模式来呈现表单。我创建了自己的 oneOf 函数,该函数采用带有一些 sachem 的 JSON 并呈现选择框供他们选择。选择框有选项,每个选项选择另一个模式。选择框呈现正确,但我总是将第一个选项设为空值 =“?”。我应该怎么做才能呈现没有空选项的选择框?

2016 年 6 月 4 日:我尝试创建一个附加组件,它将创建一个选择框,该框将选择第一个选项,但没有运气:

<div class="form-group {{form.htmlClass}} schema-form-select"
     ng-class="{'has-error': form.disableErrorState !== true && hasError(), 'has-success': form.disableSuccessState !== true && hasSuccess(), 'has-feedback': form.feedback !== false}">
  <label class="control-label {{form.labelHtmlClass}}" ng-show="showTitle()">
    {{form.title}}
  </label>
  <select 
          ng-model="$$value$$"
          ng-model-options="form.ngModelOptions"
          ng-disabled="form.readonly"
          sf-changed="form"
          class="form-control"
          ng-class="form.fieldHtmlClass"
          schema-validate="form"
          ng-options="item.value as item.name group by item.group for item in form.titleMap"
          name="{{form.key.slice(-1)[0]}}"
          ng-init="$$value$$ = form.titleMap[0]">
          <!--<option value="">{{form.defaultText}}</option>-->
  </select>
  <div class="help-block" sf-message="form.description"></div>
</div>

顺便说一下,这个添加与从角度模式表单中选择相同,但我添加了这个:

<!--<option value="">{{form.defaultText}}</option>-->

默认选项文本,直到我解决这个问题。你觉得我错过了什么?

4

1 回答 1

1

空选项在那里,因为您的模型的默认值不对应于任何选择选项。

要摆脱它,请将您的模型初始化为控制器的默认值:

$scope.foo = $scope.fooOptions[0];

您还可以使用该ng-init指令:

<select
ng-model="foo"
ng-options="option for option in fooOptions"
ng-init="foo=fooOptions[0]"></select>
于 2016-03-20T10:25:47.180 回答