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

  • Jonathan Flavell

    Jonathan Fla

    1 HAZİRAN 2006
  • Māris Zaharovs

    Māris Zahar

    28 Mayıs 2008
  • taliajoy18

    taliajoy18

    12 Temmuz 2011