SORU
29 EYLÜL 2012, CUMARTESİ


Neden angularjs seçin boş bir seçenek içerir

Çalışıyorum ile açısal için son birkaç hafta ve bir şey gerçekten canımı sıkan bu denemelerine rağmen tüm permütasyon veya yapılandırma tanımlanan spec http://docs.angularjs.org/api/ng.directive:select bana hala boş bir seçenek olarak ilk çocuk elementi seçmek.

İşte Yeşim

select.span9(ng-model='form.type', required, ng-options='option.value as option.name for option in typeOptions');

Burada denetleyicisi

$scope.typeOptions = [
    { name: 'Feature', value: 'feature' }, 
    { name: 'Bug', value: 'bug' }, 
    { name: 'Enhancement', value: 'enhancement' }
];

Son olarak, burada oluşturulan alır HTML

<select ng-model="form.type" required="required" ng-options="option.value as option.name for option in typeOptions" class="span9 ng-pristine ng-invalid ng-invalid-required">
    <option value="?" selected="selected"></option>
    <option value="0">Feature</option>
    <option value="1">Bug</option>
    <option value="2">Enhancement</option>
</select>

Benim için ondan kurtulmak için ne yapmam lazım?

P. S. bu Şeyler olmadan iyi bir iş, ama eğer birden fazla seçim olmadan select2 kullanırsanız sadece garip görünüyor.

CEVAP
29 EYLÜL 2012, CUMARTESİ


option boş bir değer ng-model tarafından başvurulan seçenekleri ng-options geçirilen bir dizi yok oluşturulur. Bu kaza sonucu model seçimi önlemek için olur: AngularJS ilk modeli tanımsız veya seçenek kümesi olduğunu görebilir ve kendi değer modeline karar vermek istemiyorum.

Eğer boş seçeneği kurtulmak sadece sizin denetleyicisi bir başlangıç değeri seçin almak istiyorsanız, gibi bir şey

$scope.form.type = $scope.typeOptions[0].value;

Burada jsFiddle: http://jsfiddle.net/MTfRD/3/

Kısacası: boş seçeneği geçerli bir model (geçerli demek: seçenekleri ayarlayın) seçili olduğu anlamına gelir. Bu boş seçeneği kurtulmak için geçerli bir model bir değeri seçmek gerekir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • jesiel santos

    jesiel santo

    15 Ocak 2009
  • MikeyMacintosh

    MikeyM

    28 Aralık 2009
  • Peyton

    Peyton

    28 Aralık 2008