javascript의 promp 함수처럼 대시에 대화 상자를 사용하여 플롯 이름을 묻고 싶지만 사용할 때 {html.Script("prompt('text');", type='text/javascript')
아무 것도 반환하지 않습니다.
텍스트 입력이나 텍스트 영역을 사용하고 싶지 않습니다.
도와주셔서 감사합니다.
Dash 문서는 에 대해 다음과 같이 말합니다 html.Script
.
주의: 완전성을 위해 포함되지만 요소에 제공하여 JavaScript 코드를 실행할 수 없습니다. 대신 이 목적을 위해 클라이언트 측 콜백을 사용하십시오.
https://dash.plotly.com/dash-html-components/script
설명서에 나와 있는 것처럼 한 가지 옵션은 대신 클라이언트 측 콜백을 사용하는 것입니다.
아이디어를 보여주는 최소한의 예:
app = dash.Dash(__name__)
app.layout = html.Div(
[
html.Div(id="content"),
html.Button(id="button", children="Show name of plot prompt"),
]
)
app.clientside_callback(
"""
function(n_clicks) {
if (n_clicks) {
nameOfPlot = prompt('name of plot')
return nameOfPlot
}
return "Name of plot placeholder"
}
""",
Output("content", "children"),
Input("button", "n_clicks"),
)
Button
클릭이 콜백의 입력이다. 아무 것도 클릭하지 않으면 children
id 가 있는 div 속성 을 설정하는 자리 표시자 텍스트를 반환합니다 content
.
버튼이 클릭된 경우 호출 prompt
하여 작업을 수행 할 수 있습니다 .
이 접근 방식을 사용하면 콜백이 작동하려면 입력과 출력이 필요합니다. 루트 애플리케이션 디렉토리 에 있는 .js
파일에 자바스크립트 코드를 넣을 수도 있습니다 assets
. 클라이언트 측 콜백에 대한 자세한 내용은 여기 에서 설명서를 참조 하십시오 .
또 다른 방법은 폴더에 .js
파일 assets
이 있고 거기에 프롬프트 코드를 넣는 것입니다. 또한 페이지가 로드될 때까지 기다리거나 버튼 클릭 이벤트 또는 적절한 순간에 프롬프트를 트리거하는 데 사용할 수 있는 기타 이벤트를 수신하도록 일부 이벤트 리스너를 설정할 수도 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다