我坚持这个:
我需要将数据填充到我的应用中。
我第一次使用促销活动....
没有ProMotion我用来获取init方法中的数据
现在我的代码如下所示:
class Parties < ProMotion::TableScreen
attr_accessor :_cells
@news = []
include MyUiModules
title 'Yazarlar'
refreshable callback: :on_refresh,
pull_message: "Pull to refresh",
refreshing: "Refreshing data…",
updated_format: "Last updated at %s",
updated_time_format: "%l:%M %p"
def on_refresh
#MyItems.pull_from_server do |items|
#@my_items = items
end_refreshing
#update_table_data
# end
end
def table_data
_cells = []
[{
title: nil,
cells: create_cells(_cells)
}]
end
def will_appear
Barbutton.create_bar(self)
set_attributes self.view, {
backgroundColor: hex_color("DBDBDB")
}
end
def go_to_next
App.delegate.slide_menu.show_menu
end
def create_cells(_cells)
BW::HTTP.get(URL) do |response|
json = BW::JSON.parse response.body.to_str
for line in json
_cells << { title: line["val_for_title"]}
end
end
_cells
end
end
不幸的是,这确实会返回一个空数组,我无法弄清楚如何解决它。 谢谢你的帮助
答案 0 :(得分:3)
你不能这样做,因为BW :: HTTP.get是异步的!
而是尝试这样的事情:
def on_init
@data = []
end
def table_data
[
{
title: nil,
cells: @data
}
]
end
def on_refresh
BW::HTTP.get(URL) do |response|
@data = []
json = BW::JSON.parse(response.body.to_str)
json.each do |hash|
@data << { title: hash["val_for_title"]}
end
update_table_data
end_refreshing
end
end
希望它有所帮助: - )