SORU
19 Ocak 2013, CUMARTESİ


ng-model filtre bir giriş

Metin girişi ve kullanıcı boşluk kullanmak için izin istemiyorum, ve her şey yazılmış küçük harfe dönüştürülecektir.

Ng-model filtre eg kullanmak için izin değilim.

ng-model='tags | lowercase | no_spaces'

Kendi talimatımı yaratma ama $parsers ve 5 *işlevleri giriş güncelleme vermedi ekleme, ng-model vardı sadece diğer elemanları baktım.

Nasıl şu anda yazmakta olduğum bir giriş değiştirebilir miyim?

Aslında 'etiketler' burada StackOverflow. üzerinde gibi çalışır bu özelliği oluşturmak için çalışıyorum

CEVAP
20 Ocak 2013, Pazar


AngularJS giriş ve ngModel direcive niyeti olduğuna inanıyorumgeçersiz giriş hiç model biter. Model her zaman geçerli olmalıdır. Geçersiz bir model olması ile sorun ve (uygun olmayan) eylemleri geçersiz modeline göre ateş alması gözlemcileri olabilir.

Gözüme uygun çözümü burada $parsers boru hattı takın ve geçersiz giriş modeli haline gelmez emin olmaktır. Emin değilim nasıl denedin yaklaşım şeyler veya tam olarak ne olmadı seninle $parsers ama burada basit bir Direktif bu sorunu çözer senin sorunun (ya da en azından benim anladığım sorun):

app.directive('customValidation', function(){
   return {
     require: 'ngModel',
     link: function(scope, element, attrs, modelCtrl) {

       modelCtrl.$parsers.push(function (inputValue) {

         var transformedInput = inputValue.toLowerCase().replace(/ /g, ''); 

         if (transformedInput!=inputValue) {
           modelCtrl.$setViewValue(transformedInput);
           modelCtrl.$render();
         }         

         return transformedInput;         
       });
     }
   };
});

Yukarıdaki Yönerge gibi kullanılabilir bildirildi bitmez:

<input ng-model="sth" ng-trim="false" custom-validation>

Çözüm @tarafından Valentyn Shybanov önerilen olarak ise; giriş başına / sonuna bir boşluk vermemek istiyorsak ng-trim Direktif kullanmamız gerekiyor.

Bu yaklaşımın avantajı 2 kat:

  • Geçersiz değer modeline yayılır
  • Bir yönerge kullanarak kolayca tekrar tekrar izleyenler çoğaltma olmadan herhangi bir giriş için bu özel doğrulama ekleyin

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ASUS

    ASUS

    22 EKİM 2005
  • TheDamnWreckless

    TheDamnWreck

    12 Temmuz 2010
  • XxMinayaxX1

    XxMinayaxX1

    9 Mayıs 2012