2016-03-28 15 views
1

Dizenin başında bir karakter aramak için JavaScript'in RegExp() kullanan bir AngularJS işlevine sahibim. Bu durumda, p küçük harflidir. ana HTML sayfada Köşeli dizge değişkeni boole ifadesine iletmiyor

$scope.checkState = function(state){ 
     var page = state; 
     console.log(page); 
     var regex = new RegExp("^[p]"); 
     var check = regex.exec(page); 
     console.log('Regex evaluated to: ' + check); 
     if (check == "p") 
     return false; 
     else 
     return true; 
    } 

, checkState() durumuna cevabını kontrol ediyor bir düğme bulunur. Yanlış olarak döndürürse, düğmeyi ng-show ile görüntüden gizler.

<md-button class="md-raised md-warn btn-right" ng-show="checkState({{pageID}})" ng-model="thing" ng-cloak onclick="thing()">My Button</md-button> 

Buraya, pageID Sayfa şablonunda verilen bir kimlik değeri içeren bir değişkendir. Açısal olarak çağrıldığında, pageID, checkState() işlevine iletilen bir dize haline gelir.

Şu anda, null için değerlendirmek üzere komut dosyasını elde edebildim, ancak başka sonuçlara yönelik değil. Bunun nedeni, değişkenin programlı olarak doldurulmasına rağmen, bunun yerine undefined aldım.

Neler oluyor burda?

+2

ama sadece 'ng-gösteriyi = "checkState (pageID)"' yapabilir ve bu – harishr

+1

diyordun oldu çalışması gerekir: Bu nedenle, dize geçmek doğru yoldur Yönerge, bu değişiklikleri her sindirim döngüsüyle izleyecektir. Bu temel sorun olup olmadığını bilmiyorum, ama olabilir. –

cevap

2

Yardımlarından dolayı @entre ve @Harris Weinstein'a çok teşekkürler. Burada sorun vardı: Ben yanlış ben gerekli dize almak için küme parantezi kullanmak gerektiğini düşünmüştü

ng-show="checkState({{pageID}})"

. Ancak, Angular kendi fonksiyon çağrılarını kullanırken buna gerek duymaz. En herhangi Eğik,

ng-show="checkState(pageID)"