2016-04-09 19 views
0

Veritabanı özelliklerinden ikisi için bir sümük oluşturan bir işlev var, ancak iki değerdeki sümük yalnızca bir kayıt için bir veri varsa birlikte dönmesini istiyorum. Bu mantığı yaratmak için, her iki alan için boş bir değer olup olmadığını bulmaya çalışan ve/veya deyim oluşturmaya karar verdim ve bir deyimin doğru veya yanlış olması durumunda render olur. Null değerleriyle birkaç kaydım var, ancak hala "Statement false" console.log'u tetikliyorlar ve nedenini anlayamıyorum. Değişkenleri kendi aralarında kayıt altına aldığımda, bu kayıtlar için boş olurum. Bildirimin çalışmamasının bir nedeni var mı?Boş Kayıtlar Else Deyimini Tetiklemiyor

Konsol günlükleri:

null //startDateValue no value 
null //endDateValue no value 
Statement false //Wrong conclusion. "Statement true" should have been triggered 
Sat Mar 05 2016 19:00:00 GMT-0500 (EST) 
Thu Apr 07 2016 20:00:00 GMT-0400 (EDT) 
Statement false //Correct conclusion. Both values are present 

Fonksiyon:

dataDateRangeSlug: function(){ 
      var startDateValue = this.getDataValue('dataDateStart'); 
      var startDate = new Date(startDateValue); 
      var momentStartDate = moment(startDate).utc().format("MM/DD/YYYY"); 

      var endDateValue = this.getDataValue('dataDateEnd'); 
      var endDate = new Date(endDateValue); 
      var momentEndDate = moment(endDate).utc().format("MM/DD/YYYY"); 

      console.log(startDateValue); 
      console.log(endDateValue); 

      if (startDateValue && endDateValue == null){ 
       console.log("Statement true"); 
      } else { 
       console.log("Statement false"); 
       return momentStartDate + ' - ' + momentEndDate; 
      }   
     }, 
startDateValue kurmak ve endDateValue null olduğunda bu durum doğrulandı

cevap

0
if (startDateValue && endDateValue == null){ 
    console.log("Statement true"); 
} 

.

Bu düzeltebilirsiniz:

if (startDateValue == null && endDateValue == null){ 
    console.log("Statement true"); 
} 

&& bir AND iki arasındaki koşullar, sen bunu her iki değişken null denetlemek için kullanabilirsiniz olamaz.