2016-03-20 12 views
1

Formları oluşturmak için açısal bir şema kullanıyorum. Birkaç Sachems ile bir JSON alır ve seçmek için seçim kutusunu render kendi oneOf işlevi oluşturdu. seçme kutusunun seçenekleri vardır, her seçenek başka bir şema seçer. seçme kutusu doğru şekilde işleniyor ancak ben her zaman değer = "?" Ile ilk seçeneği boş bırakıyorum. Seçme kutusunu boş seçenek olmadan oluşturmak için ne yapmalıyım?açısal şema formu, boş seçenekle seçim kutusu oluştur: value = "?"

6/4/2016: ben ilk seçeneği seçecektir seçkin kutusu oluşturmak olacağı bir eklenti oluşturmak için çalıştı ama hayır şans ile: yoludur tarafından

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

bu eklenti açısal şema formdan seçin gibi aynı, ama bu ekledi: ben bu sorunu çözecek kadar varsayılan seçenek metin için

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

. Ne düşündüğümü düşünüyorsun?

cevap

1

Boş seçenek var çünkü modelinizin varsayılan değeri seçim seçeneklerinden herhangi birine karşılık gelmiyor.

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

Ayrıca ng-init direktifini kullanabilirsiniz::

Kumandanızda bir Valie varsayılan değere modelinizi başlatmak, ondan kurtulmak için

<select 
ng-model="foo" 
ng-options="option for option in fooOptions" 
ng-init="foo=fooOptions[0]"></select> 
+0

ama seçenek bir nesne değil bir dize, bu {name: 'mmm', ...}. –

+0

Bunu yapacağım bir eklenti oluşturmaya çalıştım ve içeride dediğin şeyi yapmaya çalıştım: ng-init = "$$ value $$ = form.titleMap [0]". ama şanssız olarak farklı seçeneği tercih ettiğimde bile her zaman boş kalır. –