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

  • bunliu

    bunliu

    2 Mayıs 2007
  • dhcrr's channel

    dhcrr's chan

    2 Ocak 2007
  • olinerd

    olinerd

    23 AĞUSTOS 2007