서버 측 작업을 대기열에 추가하는 영업팀 번개 구성 요소가 있습니다. 이 작업을 수행하려면 매개 변수 중 하나로 맵을 전달해야하지만 대신 객체의 메모리 주소를 사용하는 것처럼 보입니다.
지도를 생성하고 서버 측 작업을 호출하는 클라이언트 측 코드 :
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] 삭제
몇 마디 만하겠습니다