2017-01-16 23 views
0

にキーのすべての値を取得します。私は、次の形式のいくつかの日付を含むJSON文字列化された変数があります。JSON文字列

var labs = { 
    "2016-01-07":[{ 
     "date":"2016-01-07T12:45:00.000Z", 
     "duration":120, 
     "location":"ExampleLocation" 
    }], 
    "2017-01-05":[{ 
     "date": "2017-01-05T14:45:00.000Z", 
     "duration": 120, 
     "location": "ExampleLocation" 
     },{ 
     "date": "2017-01-05T14:45:00.000Z", 
     "duration": 120, 
     "location": "ExampleLocation" 
    }]; 
} 

は今、私はこれらの日付は、角材料カレンダーに書き込むことがしたいの。それは、このコードで行われます。

$scope.setDayContent = function(date) { 
     var key = [date.getFullYear(), numFmt(date.getMonth()+1), numFmt(date.getDate())].join("-"); 
     var data = (labs[key] || [{ date: ""}])[0].date.slice(11, 16); 
     $scope.dayContent = data; //Returns the time and prints it into the calendar cell 

毎日の第一の目的のためにこれだけ作品、プリントアウトし、「2017年1月5日」isnt'tでそう二日。どのようにすべての値にアクセスし、それぞれのカレンダーセルの各日付を印刷できますか? (labs[key] || [{ date: ""}])[1]が既に記録されていますが、定義されていません。

+1

JSONが無効です。キーなしで2017-01-05 "の値の後に配列があります。 –

答えて

-1

開始するには、labs変数が無効です。それは実際にする必要があります:

var labs = { 
    "2016-01-07":[{ 
     "date":"2016-01-07T12:45:00.000Z", 
     "duration":120, 
     "location":"ExampleLocation" 
    }], 
    "2017-01-05":[{ 
     "date": "2017-01-05T14:45:00.000Z", 
     "duration": 120, 
     "location": "ExampleLocation" 
     }, { 
     "date": "2017-01-05T14:45:00.000Z", 
     "duration": 120, 
     "location": "ExampleLocation" 
    }] 
}; 

次に、指定した日付のラボのエントリ値を代入しようとしている場合、またはあなたが全体のマッチングラボエントリを割り当てるしようとしている場合、私は、コードからわかりませんよ。あなただけのデータだけをしたい場合は、試してみてください。

$scope.setDayContent = function(date) { 
    var key = [date.getFullYear(), numFmt(date.getMonth()+1), numFmt(date.getDate()+1)].join("-"); 
    var data = labs[key] || []; 
    $scope.dayContent = data; //Returns the time and prints it into the calendar cell 
}; 

あなたが全体のエントリに割り当てたいと思っている場合:

:また

$scope.setDayContent = function(date) { 
    var key = [date.getFullYear(), numFmt(date.getMonth()+1), numFmt(date.getDate()+1)].join("-"); 
    var data = {}; 
    data[date] = labs[key] || []; 
    $scope.dayContent = data; //Returns the time and prints it into the calendar cell 
}; 

を、私はnumFmtは、以下の機能を持っていることを前提としています

var numFmt = function(num) { 
    if (num < 10) return '0' + num; 
    return num.toString(); 
}; 

私はこれが助けてくれることを望みます:)