정확하게 json 배열을 반복하여 위치 ID와 d3 객체 ID를 일치시켜야합니다.특정 매개 변수를 사용하여 객체 배열을 반복하기
여기 (생성 루비 레일) 어레이의 단편이다 : 나 드래그 & 드롭 기능을 Y
{
"name": "Test",
"locations": [{
"city_id": 1,
"x": 0,
"y": 0
}, {
"city_id": 2,
"x": 0,
"y": 0
}, {
"city_id": 3,
"x": 0,
"y": 0
}, {
"city_id": 118,
"x": 0,
"y": 0
}, {
"city_id": 117,
"x": 0,
"y": 0
},
],
"city": [{
"id": 118,
"name": "London"
}, {
"id": 117,
"name": "New York"
}, {
"id": 1,
"name": "Miami"
}, {
"id": 3,
"name": "Duabi"
}, {
"id": 2,
"name": "Hong Kong"
}
]
}
&는 X의 값을 수집하기 위해. 개체를 떨어 뜨리면 x & y 값의 위치를 업데이트하기 위해 게시물을 보냈습니다. 그러나, 그것은 내 루프 isnt 구체적인만큼 정확한 ID로 업데이 트를 보냅니다.
그래서 지금은 &는 D3 객체로 일치하는 도시의 위치를 수집 할 수있는 방법을 찾아야/cities.So I는 다음과 같이 통해 루프 :
.attr("transform", function(d,i) {return "translate("+json.locations[i].x+","+json.locations[i].y+")" ;})
을하지만 이것은 단지 아무것도 일치하지 않고 배열을 간다 . 따라서 본질적으로 내 루프가 &을 통과하여 ID가 &과 상관되는지 확인한 다음 해당 위치를 관련 d3 개체에 할당합니다. 따라서 도시 ID : 118을 끌면 & 위치가 city_id로 떨어졌습니다. 188은 city_id : 1이 아니라 문제를 업데이트해야합니다.
가능합니다.
미리 감사드립니다.
안녕, 답장을 보내 주셔서 감사합니다 - 약간. given_id는 중첩 된 객체 "city"에서 왔고 도시 둥지에서 "id"를 수집해야합니다. 그래서 대신 var city = json.city [i] .id를 시도했습니다. . 그러나 "id"가 존재하지 않는 것을 계속해서 버린다. 모든 아이디어 – Jose
하지만 당신의 사건이 무엇인지 이해하지 못합니다. 언제 실행되고 어떻게 _input_ 데이터를 얻나요? – mkutyba
json으로 정의 된 ajax 호출을 통해 데이터를 가져옵니다. 도시에 대한 데이터를 수동으로 입력하고 드래그 앤 드롭 기능을 통해 위치를 업데이트합니다. 따라서 마우스 이벤트가 끝나면 실행됩니다. – Jose