2016-03-20 17 views
1

私はフォームをレンダリングするために角度スキーマを使用しています。 私は自分のoneOf関数を作成しました。これはいくつかのsachemを持つJSONを取り出し、選択するための選択ボックスをレンダリングします。 選択ボックスにはオプションがあり、オプションごとに別のスキーマを選択します。 選択ボックスは正しくレンダリングされますが、最初のオプションは常に値= "?"で空になります。 空のオプションを使用せずに選択ボックスをレンダリングするにはどうすればよいですか?角度スキーマ形式空のオプションを持つレンダリング選択ボックス:value = "?"

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>--> 

デフォルトのオプションテキストは、この問題を解決するまでです。 私は行方不明だと思いますか?

答えて

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> 
+0

をしかしオプションは、オブジェクトではありません文字列、this {name: 'mmm'、...} –

+0

これを行うための追加を作成しようとしましたが、あなたの言ったことをやろうとしました。ng-init = "$$ value $$ = form.titleMap [0]"私は別のオプションを選択しても、それはいつも空です。 –

関連する問題