Lightning 구성 요소에서 Apex 서버 컨트롤러로 Javascript 맵을 매개 변수로 보내는 방법은 무엇입니까?

자쿠

서버 측 작업을 대기열에 추가하는 영업팀 번개 구성 요소가 있습니다. 이 작업을 수행하려면 매개 변수 중 하나로 맵을 전달해야하지만 대신 객체의 메모리 주소를 사용하는 것처럼 보입니다.

지도를 생성하고 서버 측 작업을 호출하는 클라이언트 측 코드 :

var action = cmp.get("c.save");
var mapToSend = new Map()
for (var key of valueMap.keys()) {
    mapToSend.set(key, valueMap.get(key))
}
action.setParams({
    "name": cmp.get("v.name"),
    "params": mapToSend
});

컨트롤러에서 :

 public static Boolean save(String name, Map<String, Object> params) {

javascript의 로그는 Map모든 올바른 필드에서 멋지게 표시 되지만 salesforce 시스템 로그에는

14:55:16.0 (3172304)|VARIABLE_SCOPE_BEGIN|[41]|name|String|false|false
14:55:16.0 (3188041)|VARIABLE_ASSIGNMENT|[41]|name|"Account"
14:55:16.0 (3191758)|VARIABLE_SCOPE_BEGIN|[41]|params|Map<String,ANY>|true|false
14:55:16.0 (3204719)|VARIABLE_ASSIGNMENT|[41]|params|{}|0x30d2397a

이유는 무엇입니까? 로그에서 그것들 |false|false|true|false의미는 무엇입니까 ?

자쿠

문제는 자바 스크립트 데이터 구조를 이해하는 것입니다. 다음과 같이 준비된 데이터로 apex 컨트롤러를 호출하면 올바른 결과를 얻을 수 있습니다.

var mapToSend = {}
for (var key of valueMap.keys()) {
    mapToSend[key] = valueMap.get(key);
}
action.setParams({
    "name": cmp.get("v.name"),
    "params": mapToSend
});

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관