将值从一页以虚线方式传递到另一页

时间:2018-06-21 21:25:23

标签: python plotly plotly-dash

我正在尝试使用Dash Plot将输入值传递给另一个。

主页上有策略列表:

First_page = html.Div([
    html.Div([dcc.Dropdown(id='strategy', options=[{'label': i, 'value': i} for i in [strat1, start2]], multi=True)], value = [strat1]),
    html.Div([dcc.Input(id='date_start', type='text', value='1990-01-01')]),
    html.Button('Start Calculation', id='button'),
])

我的第1页和第2页如下:

for i in range(2) : 
    layout = html.Div([
        html.Div([dcc.Dropdown(id='strategy'+str(i), options=[{'label': i, 'value': i} for i in [strat1, start2]]])], value = strat+str(i)),
        html.Div([dcc.Input(id='date_start'+str(i), type='text', value='1990-01-01')]),
        html.Button('Start Calculation', id='button'+str(i)),
        + other options not listed in main page
    ])

目标如下:当用户位于主页上时,他可以选择要查看的策略列表以及开始日期。

然后,当他按下按钮时,它将为每个选择的策略打开页面(在示例中,我们有2个策略,所以我应该有2个页面:localhost:port / page-strat1和localhost:port / page-strat2),其中每页上显示的图形均以所选日期开头。

我成功打开了页面localhost:port / strat1和/或页面localhost:port / strat2,具体取决于所选策略的列表。

list_event = [Event('button', 'click')]
list_state = [State('strategy', 'value')]
@app.callback(Output('hidden-div', 'children'),events=list_event, state=list_state)
def create_callback_share(datestart, list_strategies_used):
    for _strat in list_strategies_used:
        time.sleep(1)
        webbrowser.open('http://localhost:port/page-'+_strat)

但是我没有成功发送所选日期。我尝试以下回调:

for i in range(2) : 
    @app.callback(Output('date_start'+str(i), 'value'),inputs=[Input('date_start', 'value')])
    def set_display_children(selected_element):
        return "{}".format(selected_element)

但是即使我在主页上输入另一个值,页面localhost:port / strat1和localhost:port / strat2仍允许使用默认值“ 1990-01-01”打开。

是否可以将值从一页发送到另一页?

1 个答案:

答案 0 :(得分:0)