2015-07-22 24 views
9

olup olmadığını nasıl bu fonksiyonu var kontrol etmek: ticketPinOrEvent sayı isedeğer sayı

$scope.SearchTicketEvent = function (ticketPinOrEvent) 
      { 
       if (ticketPinOrEvent != undefined) 
       { 

       if (ticketPinOrEvent.length == 10) 
        { 

        $scope.PinTicketSearch(ticketPinOrEvent); 

        } 
       } 


      } 

Nasıl kontrol edebilirsiniz? angular.isNumber(ticketPinOrEvent) ile denedim ama hiçbir şey alamıyorum?

+0

Eğer angular.isNumber çağırdığınızda ne alıyoruz kullanmak istiyorsanız? – dhavalcengg

+0

Bunu mu demek istediniz: 'int' or' float'? – Vineet

+0

@Vineet demek int – uzhas

cevap

28

Eğer angular.isNumber

if (!isNaN(ticketPinOrEvent) && angular.isNumber(+ticketPinOrEvent)) { 
    } 
+0

neden + kullanmam gerekiyor? – uzhas

+1

Bu değeri bir metin kutusu veya başka bir şey kullanarak görüntüden alıyor olmanız gerekir ... metin kutusu için bu her zaman bir dizedir .. diziyi angular.isNumber yöntemine iletmeden önce sayıya dönüştürmeniz gerekir. +, herhangi bir değeri sayıya dönüştürmek için aşırı yüklenmiş operatördür. – dhavalcengg

+0

ama ne girerim o zaman ben doğru olsun ... Ffffffffff giriyorum bana geri gerçek – uzhas

4

Bir değişken sayı olup olmadığını sınamak için typeof kullanabilirsiniz.

if (typeof ticketPinOrEvent === 'number') { 
    $scope.PinTicketSearch(ticketPinOrEvent); 
} 

Ya da bu deneyebilirsiniz: - Başka NaN değerine dahil

if (!isNaN(ticketPinOrEvent) && angular.isNumber(ticketPinOrEvent)) { 
    $scope.PinTicketSearch(ticketPinOrEvent); 
} 

Testing against NaN:

NaN başka bir değere eşit olmayan (via ==, !=, ===, and !==) karşılaştırır. Number.isNaN() veya isNaN() öğelerinin çoğunu kullanın, bir değerin NaN olup olmadığını açıkça belirleyin. Veya kendi kendine bir gerçekleştirin: NaN ve sadece NaN, eşitsizliği kendi ile karşılaştıracaktır.

+0

Açısal 1.4.1 kaynak kodu Satır 628: 'function isNumber (value) {return typeof value == = 'sayı';} ' – Joy