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

  • Dogbert files

    Dogbert file

    12 Ocak 2012
  • ExcelIsFun

    ExcelIsFun

    16 ŞUBAT 2008
  • SketchBookPro

    SketchBookPr

    6 Mayıs 2009