氮气得到table的含量
Nitrogen get content of table
所以,我有一个氮气页面,index.erl,其中包含如下代码:
body() ->
[#table{
id = mytable,
rows=[
#tablerow{
cells=[#tableheader{text="column a"},
#tableheader{text="column b"},
#tableheader{text="column c"},
#tableheader{text="column d"}]
},
#custom_row{ %% just a wrapper around #tablerow
column_a = "a",
column_b = "b",
column_c = "c",
column_d = "d"
}
%% ... more #custom_rows omitted
]
},
#button{text="submit", postback=store_table}
].
event(store_table) ->
TableData = something_like_querySelector(mytable),
insert_into_database(TableData).
如何获取 mytable
的含量,氮气是否有类似 querySelector
的东西?
没有像 querySelector 这样干净整洁的东西,但是可以通过使用 Nitrogen 的 #api{}
action.
检索任意 DOM 元素的内容
使用上面的代码,我们可以执行以下操作:
body() ->
wf:wire(#api{name=send_table_contents, tag=some_tag}),
[#table{
id = mytable,
rows=[
#tablerow{
cells=[#tableheader{text="column a"},
#tableheader{text="column b"},
#tableheader{text="column c"},
#tableheader{text="column d"}]
},
#custom_row{ %% just a wrapper around #tablerow
column_a = "a",
column_b = "b",
column_c = "c",
column_d = "d"
}
%% ... more #custom_rows omitted
]
},
#button{text="submit", click="page.send_table_contents(objs('mytable').html())"}
].
api_event(send_table_contents, some_tag, [TableHTML]) ->
insert_into_database(TableHTML).
它不像使用 wf:q
那样能够请求内容那么干净,但它确实完成了工作。
这里的快速解释是 #api{}
操作在页面上创建了一个名为 page.api_name_attribute
的新函数(所以如果你看上面,你会看到 name 属性是 send_table_contents
并且 #button.click
中调用的 javascript 函数也是 send_table_contents
。然后在 api_event(NameOfAPI, Tag, ListOfArgs)
回发函数中捕获内容。
也就是说,我已将此功能添加到待办事项列表中,因为它看起来很有用。
所以,我有一个氮气页面,index.erl,其中包含如下代码:
body() ->
[#table{
id = mytable,
rows=[
#tablerow{
cells=[#tableheader{text="column a"},
#tableheader{text="column b"},
#tableheader{text="column c"},
#tableheader{text="column d"}]
},
#custom_row{ %% just a wrapper around #tablerow
column_a = "a",
column_b = "b",
column_c = "c",
column_d = "d"
}
%% ... more #custom_rows omitted
]
},
#button{text="submit", postback=store_table}
].
event(store_table) ->
TableData = something_like_querySelector(mytable),
insert_into_database(TableData).
如何获取 mytable
的含量,氮气是否有类似 querySelector
的东西?
没有像 querySelector 这样干净整洁的东西,但是可以通过使用 Nitrogen 的 #api{}
action.
使用上面的代码,我们可以执行以下操作:
body() ->
wf:wire(#api{name=send_table_contents, tag=some_tag}),
[#table{
id = mytable,
rows=[
#tablerow{
cells=[#tableheader{text="column a"},
#tableheader{text="column b"},
#tableheader{text="column c"},
#tableheader{text="column d"}]
},
#custom_row{ %% just a wrapper around #tablerow
column_a = "a",
column_b = "b",
column_c = "c",
column_d = "d"
}
%% ... more #custom_rows omitted
]
},
#button{text="submit", click="page.send_table_contents(objs('mytable').html())"}
].
api_event(send_table_contents, some_tag, [TableHTML]) ->
insert_into_database(TableHTML).
它不像使用 wf:q
那样能够请求内容那么干净,但它确实完成了工作。
这里的快速解释是 #api{}
操作在页面上创建了一个名为 page.api_name_attribute
的新函数(所以如果你看上面,你会看到 name 属性是 send_table_contents
并且 #button.click
中调用的 javascript 函数也是 send_table_contents
。然后在 api_event(NameOfAPI, Tag, ListOfArgs)
回发函数中捕获内容。
也就是说,我已将此功能添加到待办事项列表中,因为它看起来很有用。