【问题标题】:How to call an erlang function in nitrogen?如何在氮气中调用erlang函数?
【发布时间】:2012-11-25 17:56:32
【问题描述】:
-module (blah).
-compile(export_all).
-include_lib("nitrogen_core/include/wf.hrl").

main() -> #template { file="./site/templates/bare.html" }.

title() -> "Welcome to Nitrogen".

body() ->
#button { id=calcButton, text="Click"}.

imafunction(Param1, Param2) -> %something here%.

如何通过点击按钮调用 imafunction(Param1, Param2) 函数及其参数?

【问题讨论】:

    标签: erlang nitrogen


    【解决方案1】:

    您将希望通过回发来执行此操作。

    最简单的方法是更改​​按钮以包含postback 属性:

    #button { id=calcButton, text="Click", postback=do_click}.
    

    然后你必须使用event/1 函数来处理回发:

    event(do_click) -> 
        imafunction("first val","second val").
    

    但是,如果您想将值与某种动态数据一起传递,您可以采用以下两种方式之一。

    1)您可以将其作为回发的一部分传递,并对回发值进行模式匹配。

    #button { id=calcButton, text="Click", postback={do_something,1,2} }
    

    然后在回发时进行模式匹配

    %% Notice how this is matching the tuple in the postback
    event({do_something,Param1,Param2}) ->
        imafunction(Param1,Param2).
    

    或者,2)您可以将值作为输入传递(例如文本框或下拉框)

    首先,添加要发送的参数字段,并确保您的按钮执行回发

    body() ->
        [
            #label{text="Param 1"},
            #textbox{id=param1},
            #br{},
            #label{text="Param 2"},
            #textbox{id=param2},
            #br{},
            #button{ id=calcButton, text="Click", postback=do_other_thing}
       ].
    

    然后在您的 event/1 函数中,我们将检索值并调用您的函数。

    event(do_other_thing) ->
        Param1 = wf:q(param1),
        Param2 = wf:q(param2),
        imafunction(Param1,Param2).
    

    您可以阅读更多关于 Nitrogen 回发和提交数据的信息

    【讨论】:

      猜你喜欢
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-22
      • 1970-01-01
      • 1970-01-01
      • 2013-01-22
      • 1970-01-01
      相关资源
      最近更新 更多