2017-01-13 3 views
1

Google App Maker에서 맞춤 확인 대화 상자를 만들고 있으며 Confirm (확인) 버튼으로 전달 된 기능을 호출하려고합니다. 버튼 위젯에 "onclick"이벤트가 표시되지 않습니다. 이 작업을 수행하는 방법에 대한 제안 사항은 무엇입니까? 이것은 좀 더 쉽게 있다면Google App Maker의 맞춤 확인 대화 상자에 콜백을 연결하는 방법은 무엇입니까?

function confirmationDialog(msg, confirmFunction) 
{ 
    var desc = app.pageFragments.ConfirmationDialog.descendants; 
    var label = desc.Label; 
    var confirmButton = desc.Confirm; 

    label.text = msg; 
    confirmButton.onClick = confirmFunction; // does not work 

    app.showDialog(app.pageFragments.ConfirmationDialog); 
} 

감사

+0

, 당신의 코드를 기반으로, ID는 어떤 코드를 제공하지 않았다 기다립니다 ..... 말을 우리는 어떻게 해결 해야하는 당신 코드를 입력하지 않았 으면 –

+0

시도 할 위젯에 이벤트를 찾을 수 없기 때문에 코드를 추가하지 않았습니다. 그러나 작업하기 좋은 코드를 추가했습니다. – Scott

답변

3

그것은 좋은 것, 그러나 가장 좋은 방법은 사용자 정의 속성 (https://developers.google.com/appmaker/ui/viewfragments)를 사용하는 것입니다.

"Dynamic"유형의 사용자 지정 속성을 설정하고 아무 것도 호출하지 않고 "onConfirmCallback"을 가져올 수 있습니다. 닫기 버튼의 온 클릭에 다음

app.pageFragments.ConfirmationDialog.properties.onConfirmCallback = function(param) { 
    alert(param); 
}; 
app.showDialog(app.pageFragments.ConfirmationDialog); 

: 그리고 대화 호출

코드 : 그럼 당신은 사용자 지정 속성에 기능을 설정할 수 있습니다

app.pageFragments.ConfirmationDialog.properties.onConfirmCallback("hi"); 
app.closeDialog(); 

를 또한 약간이 있음을 유의 예를 들어 사용자 정의 속성을 사용하는 것보다 레이블을 설정하는 더 좋은 방법입니다.

사용자 정의하려는 위젯 특성에 대한 사용자 정의 특성을 작성한 다음 해당 특성 (@propertyName)을 위젯 특성에 바인드하십시오. 예를 들어, confirmText 속성을 가지고 있으며, 확인 버튼 텍스트 속성이 @ properties.confirmText에 boudn되어있을 수 있습니다.

그러면 대화 상자를 호출 할 때 해당 사용자 지정 속성 만 설정할 수 있습니다. 모든 속성을 사용하여 예제 코드의 빠른 수정 : 나는 (모든 더미에 용이 한 장소에있는 대화 상자를 표시하기 전에 내 확인 대화 상자를 들어

function confirmationDialog(msg, confirmFunction) 
{ 
    var properties = app.pageFragments.ConfirmationDialog.properties; 
    properties.text = msg; 
    properties.confirmCallback = confirmFunction; 

    app.showDialog(app.pageFragments.ConfirmationDialog); 
} 
+0

아이디어를 제공해 주셔서 감사합니다. 속성을 사용하려면 작동 시키십시오. 코드는 멋지고 깨끗합니다! – Scott

0

, 나는 그냥 OK 버튼의 OnClick을 설정 (나) 6 개월을 유지해야합니다 사람 :. 잘

var dialog=app.pages.ConfirmationDialog; 
    dialog.descendants.message.text='Are you sure...?' 
    dialog.descendants.btnOk.getElement().onclick=function(){ 
     //do something here 
     app.closeDialog(); 
    }); 
    }; 
    app.showDialog(dialog); 
}