2016-02-04 60 views
0

我在使用momentjs的角度指令中有一個簡單的函數。它爲日曆創建了一週。我嘗試設置預訂的不可用日期。無法使用push方法訪問屬性

使用,我想我用固定的問題Chrome的控制檯:indexOf();

我的問題是,當我在推方法中返回移動代碼date is undefined (.date.format('YYYY-MM-DD'))

function _buildWeek(date, month) { 

      var days = []; 

       for (var i = 0; i < 7; i++) { 

        days.push({ 
         name: date.format("dd").substring(0, 1), 
         number: date.date(), 
         isCurrentMonth: date.month() === month.month(), 
         isToday: date.isSame(new Date(), "day"), 
         date: date, 
         unavailable: dealerUnAvailabilityDates[0].daysOff.indexOf(days[days.length-1].date.format('YYYY-MM-DD')) !== -1 
        }); 

        date = date.clone(); 
        date.add(1, "d"); 


       } 

       console.log(days); 


      return days; 
     } 

我猜問題是'date'是對象的一部分,所以直到創建對象後才能使用它。它試圖使用自己。\

我該如何解決這個問題?

回答

0

問題是days[days.length - 1]在您嘗試在每次迭代中使用它時尚未填充。不過,你可以放心地使用date對象本身,因爲它是你想要什麼呢:

var days = []; 

for (var i = 0; i < 7; i++) { 

    days.push({ 
     name: date.format("dd").substring(0, 1), 
     number: date.date(), 
     isCurrentMonth: date.month() === month.month(), 
     isToday: date.isSame(new Date(), "day"), 
     date: date, 
     unavailable: dealerUnAvailabilityDates[0].daysOff.indexOf(date.format('YYYY-MM-DD')) !== -1 
    });        // use date directly here --^ 

    date = date.clone(); 
    date.add(1, "d"); 
} 
+0

由於它工作的偉大! – user2668392