저는 편집기가 일부 값 (이 경우 과거 날짜 필드)을 사용하여 구성 요소를 저장하려고 할 때마다 나타나는 모달 팝업을 가지고 있습니다.앵 귈라 - 팝업에서 필드 값 업데이트 중?
이 팝업에서는 편집기에 몇 가지 옵션 (기본적으로 "공유 항목 열기"대화 상자와 비슷 함)과 확인/취소 버튼 콤보를 표시합니다. 취소시 "취소"이벤트가 발생하고 편집자가 편집 화면으로 돌아갑니다. 여기서는 모두 좋습니다. "OK"에서 필드의 값을 편집자가 선택한 것과 일치하도록 변경 한 다음 저장합니다.
FieldBuilder와 함께 접근 방식을 사용하려고 시도했지만 예제 Boris는 this other topic에 언급되어 있지만 팝업 대화 상자의 필드로 이동할 수 없습니다.
모달 팝업에서 항목의 xml을 수정하는 방법에 대한 제안 (페이지 일 수도 있음)?
편집 : 코드 getControlForFieldName에 사용
function getControlForFieldName(name) {
var fieldBuilder = $display.getView().properties.controls.fieldBuilder;
var fieldsContainer = fieldBuilder.properties.input;
var fieldsNode = fieldsContainer.getElement();
var fieldContainer = $dom.getFirstElementChild(fieldsNode);
while (fieldContainer) {
var labelNode = $dom.getFirstElementChild(fieldContainer);
var fieldNode = $dom.getNextElementSibling(labelNode);
var control = fieldNode.control;
if (control.getFieldName() == name) {
return control;
}
fieldContainer = $dom.getNextElementSibling(fieldContainer);
}
}
편집 # 2 프랭크의 조언, 그리고 제이미 & 프랭크 오프라인의 도움 후, 다음과 같이 작동있어
:
- 팝업이 명령 확장에서 호출됩니다 (내 경우에는 & 닫기)
- command.js 내가 이벤트 처리기에 선택한 항목을 (이 키워드 ID의) 전달하고 (== 확인을 누를) 내 팝업에서
$evt.addEventHandler(p.dialogPopup, "submit",
this.getDelegate(this._onPopupSubmit));
을 "제출"에 호출되는 이벤트 핸들러를 지정합니다 :
this.fireEvent("submit", { id: select.options[select.selectedIndex].value });
지금 다시 이벤트 처리기 _onPopupSubmit(e)
난 그냥, e.data.id 읽기이 키워드를로드 ID & 제목과 같은 속성을 얻고, item.setMetadata를 사용하여 항목의 메타 데이터를 업데이트에서 ("새 업데이트 된 값을 가진 메타 데이터 ").
간단한 :
팝업에있는 코드를 공유 할 수 있습니까? 대체로 어딘가에 부모가없는 것 같습니다. –