1

나는 협업 맵을 값으로 사용하고 있습니다. 값 맵에서 이벤트가 발생하면 해당 이벤트가 속한 키 (외부 맵의 키)를 알고 싶습니다. 누구나이를 달성 할 수있는 명확한 방법을 제안 할 수 있습니까?공동 작업 맵에서 ChangeEvent 소스 추적

CMap (key, cmapb (k, string)), ChangeEvent는 cmapb 문자열에서 발생하며 CMap의 키를 알고 싶습니다. k는 개별 키에 대해서만 고유합니다 (따라서 k를 추적 한 다음 k가 포함 된 키를 찾는 것은 옵션이 아닙니다).

ValueChangedEventCollaborativeMap

편집 :

나는이 방법 CMAP에 레코드를 (cmapb)를 추가하기 전에의 EventListener를 부착하고있다 :

records.addEventListener(gapi.drive.realtime.EventType.VALUE_CHANGED, updateJSON); 

I가 레코드의 ID를 전달 할 수 있다면 updateJSON, 그런 다음 을 CMAP을 통해 반복하여 해당 값을 가진 값을 찾을 수 있습니다. 비록 내가 모르겠지만 어떻게 ID를 전달할 수뿐만 아니라 ChangeEvent.

답변

1

정확하게 모델을 만들려고하는지 잘 모르겠습니다. 실제로이 맵에 임의의 요소를 추가하고 있습니까? 그렇지 않으면 사용자 지정 개체를 사용하여 볼 수 있습니다. 여기서 사용자 지정 개체는 키 필드와 저장할 다른 개체의 필드를 가질 수 있습니다. (https://developers.google.com/drive/realtime/build-model#lifecycle_of_a_custom_collaborative_data_object 참조)

실제로 함수에서 해당 값에 액세스하려는 경우 표준 javascript (예 : closure) 또는 bind 함수를 사용하여 액세스 할 수 있습니다.

+0

지금 막 k의 이름을 k에 추가 한 다음 event.property에서 추출 할 수 있다고 생각했습니다. 나는 다른 해결책을 얻는데 매우 초점을 맞추었고이 간단한 것을 볼 수 없었다. 어쨌든 나는 너의 제안을 조사 할 것이다. – Giannis