这是我的index.erb文件:
<a class="btn" href='javascript:TestFunction()' role="button">TestFunction</a>
<script language="javascript">
function TestFunction() {
$.post("test_function", { action: "foo", name: "bar" } );
}
</script>
</body>
我的app.rb文件看起来像这样
class ConfigureApp < Sinatra::Base
get '/' do
erb :index
end
post '/test_function' do
button_action = params.fetch("action")
test_class = TestClass.new
test_class.action(button_action)
end
end
TestClass.rb文件:
class TestClass
def action(button_action)
if button_action == "foo"
new_button_label = "something else"
end
end
end
我有办法从TestClass更改TestFunction按钮的标签吗?因此,使用上面的示例,我可以重命名TestFunction按钮,&#34;其他内容&#34;?
答案 0 :(得分:0)
我想出了办法。我可以发帖子&#39; / test_function&#39;并发送动作和名称参数。然后使用函数作为post函数的第3个参数从Ruby端返回,这可以返回按钮的新标签。然后,我可以使用Jquery更新按钮的html或innerText或我需要更新的任何内容。这就是我实现这个的方式:
<a class="btn" id='btn-foo' href='javascript:TestFunction()' role="button">TestFunction</a>
<script language="javascript">
function TestFunction() {
$.post("test_function", { action: "foo", name: "bar" }, function(data) {
$('#btn-foo').html = data;
});
}
</script>
</body>