SORU
26 EYLÜL 2013, PERŞEMBE


Nasıl bir giriş yazmış olmak için sadece bir sayı (rakam ve ondalık noktası) izin vermek için?

Angularjs yeni duyuyorum. Sadece geçerli bir sayı bir textbox içine yazılan izin yolu nedir merak ediyorum. Örneğin, kullanıcı "1.25", ama yazamaz "1.yazın olabilir"ya da "1..". Kullanıcı geçersiz bir numara yapacak olan bir sonraki karakteri yazmak çalıştığınızda, bunu kontrol edemez.

Şimdiden teşekkürler.

CEVAP
28 EYLÜL 2013, CUMARTESİ


working CodePen example sayısal kullanıcı girişi filtreleme için harika bir yol göstermek için yazdım. Bu yönerge şimdilik sadece pozitif tam sayı verir, ama düzenli kolayca istediğiniz herhangi bir sayısal biçim desteklemek için güncellendi.

Benim Direktifi kullanımı kolaydır:

<input type="text" ng-model="employee.age" valid-number />

Direktif anlamak çok kolay

var app = angular.module('myApp', []);

app.controller('MainCtrl', function($scope) {
});

app.directive('validNumber', function() {
  return {
    require: '?ngModel',
    link: function(scope, element, attrs, ngModelCtrl) {
      if(!ngModelCtrl) {
        return; 
      }

      ngModelCtrl.$parsers.push(function(val) {
        if (angular.isUndefined(val)) {
            var val = '';
        }
        var clean = val.replace( /[^0-9] /g, '');
        if (val !== clean) {
          ngModelCtrl.$setViewValue(clean);
          ngModelCtrl.$render();
        }
        return clean;
      });

      element.bind('keypress', function(event) {
        if(event.keyCode === 32) {
          event.preventDefault();
        }
      });
    }
  };
});

Şunu belirtmek istiyorumdirektifin model başvuruları tutmak önemlidir.

Bu yararlı bulacağını umuyorum.

ngModelController tanıştırdığı için Sean Christe ve Chris Grimes için kocaman bir teşekkür

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Kat Krazy

    Kat Krazy

    12 Kasım 2010
  • MndsgnVEVO

    MndsgnVEVO

    26 Kasım 2013
  • Shon Gonzales

    Shon Gonzale

    5 EKİM 2014