2015-02-01 1 views
0

일부 json 데이터를 얻고 날짜를 선택 드롭 다운하여 결과를 선택하려고합니다. localhost : 3000/results에 직접 페이지를로드하면 선택 드롭 다운이 채워지고 올바른 경고를받을 날짜를 선택할 수 있습니다. 따라서 일부 코드에서는이 코드가 작동합니다. 그러나 나는 iron : router를 사용하고 있으며 결과 레이아웃 탐색 링크를 클릭하여 레이아웃 내에서 템플릿을 렌더링 할 때 데이터가로드되지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?유성 철차 : 라우터 데이터가로드되지 않습니다.

RESULTS.JS ______________________________________________________________________는

Meteor.http.call("GET", "http://data.ny.gov/resource/d6yy-54nr.json", function (err, result){ 
var my_json = JSON.parse(result.content); 
console.log(my_json); 

var html = "<option value='' disabled default>Select a date</option>"; 
var showData = my_json; 
//iterate over each lottery drawing and add it to the select. 
//The date will be displayed, the index of the array element will be the value. 
showData.forEach(function(element, index){ 
    var date = new Date(element.draw_date); 
    html += "<option value='"+index+"'>"+ (parseInt(date.getMonth())+1) + "/" + date.getDate() + "/" + date.getFullYear()+ "</option>"; 

}); 

//insert the option into the select. 
document.getElementById("selectDate").insertAdjacentHTML("beforeend", html); 
//add an onchange event handler to the select. 
document.getElementById("selectDate").addEventListener("change", displayWinningNumbers, false); 

function displayWinningNumbers(e) 
{ 
    //when a option is selected, test the value. If 0 or higher return the array entry with the winning numbers. 
    if(e.target.value >= 0) 
    { 
    alert(showData[e.target.value].winning_numbers); 
    } 
} 
}); 
+0

주세요. 나 아직도 여기 붙어있어. –

답변

0

는 다음을 수행하여이 문제를 해결 :

RESULTS.JS ____________________________________________________을

Template.results.helpers({ 
    results: function() { 
    return Session.get('lottery-results'); 
    }, 
    winning: function() { 
    return Session.get('winning') 
    } 
}); 

Template.results.rendered = function(){ 
    Session.set('lottery-results', []); 
    HTTP.get("http://data.ny.gov/resource/d6yy-54nr.json", function (err, result) { 
    Session.set('lottery-results', JSON.parse(result.content)); 
    }); 
}; 

Template.results.events({ 
    'change #date': function (e, tmpl) { 
    Session.set('winning', $('#date option:selected').data('winning')) 
    } 
}); 

Template.results.destroyed = function(){ 
Session.set('winning', []); 
}; 

RESULTS.HTML ____________________________________________________

<template name="results"> 
<select id="date"> 
<option>Select a date</option> 
{{#each results}} 
<option data-winning="{{ winning_numbers }}">{{dateFormat draw_date format="MM/DD/YYYY"}}</option> 
{{/each}} 
</select> 
<h1>{{ winning }}</h1> 
</template>