当我更改表单中的字段时,我想将formotion表单提交到服务器。有人知道是否有变更回调或类似的东西?
我的表格:
class SettingsScreen < PM::FormotionScreen
title "Settings"
tab_bar_item title: "Settings", icon: 'settings'
def table_data
{
sections: [
{
title: "Settings",
rows: [
{
title: "Start Date",
key: :start_date,
type: :date,
format: :medium
}, {
title: "End Date",
key: :end_date,
type: :date,
format: :medium
}
]
}
]
}
end
def on_load
self.form.on_submit do |form|
p "submitting!"
end
end
end
答案 0 :(得分:1)
一种方法是使用RMQ来观看值。
你可以用它做什么的一个例子(未经测试):
rmq(UITextView).on(:change) do |sender|
save_something @form.render
end
行上有一个未记录的(据我所知)on_change
方法,但我并不完全确定如何获取行。
https://github.com/clayallsopp/formotion/search?q=on_change&ref=cmdform
答案 1 :(得分:0)
以下是我正在处理的当前应用程序的示例。我正在使用Bubblewrap的观察者,但我想RMQ的工作方式是一样的。您可以在该观察区块中放置您喜欢的任何电话。此外,我确实记得Jamon提到的无证方法 - 他们只是不能满足我的特定需求。将行排除在实际形式之外更麻烦但也可行。
section.build_row do |row|
row.title = "Percentage"
row.type = :static
row.value = @percentage.to_i.to_s + ' %' || ''
end
section.build_row do |row|
row.title = ""
row.key = :percentage
row.type = :slider
row.range = (1..100)
row.value = @percentage || 50
observe(row, "value") do |old_value, new_value|
row.previous_row.value = new_value.to_i.to_s + ' %'
end
end