在rails中,可以设置:remote => true
来远程调用Web应用程序。然后可以使用.js.erb
来响应以更改元素。我如何在Sinatra中创建这个?我想在资源上做一个远程删除,如果成功,更新Dom,否则抛出错误。sinatra javascript call
回答
在Rails,使用link_to
帮手结果如下输出设置:remote => true
:
<a href="#yoururl" data-remote="true">Linktext</a>
此链接在rails.js
通过类似观察:
$(document).on('click.remote', '[data-remote]', function() {
$.ajax({
url: $(this).attr('href'),
type: $(this).data('method') || 'GET',
// and so on...
});
});
它所因此实际上做的是标志您的HTML
链接与data-remote="true"
属性,然后通过js
处理它。您可以回复的js.erb
模板然后通过DOM
撤销。 (我个人认为这是一个坏主意)。
在西纳特拉,你可以做几乎相同:先用你的链接,例如remote
类(提供更快的查找对JS不是一个导轨通过[data-remote]
用途:
<a href="#yoururl" class="remote">Your Link Text</a>
然后结合其通过jQuery远程类的链接:观察从始发元素与远程类铁轨一路点击事件整个文档做的:
$(document).on('click.remote', '.remote', function() {
// a similar ajax call to the one rails uses
});
然后,与JSON
回应和Sinatra::JSON
:
get '/yoururl' do
json :foo => 'bar'
end
做什么,你在Ajax调用成功处理程序中的数据一样。或者,你也可以写在ERB的脚本(这是什么轨与.js.erb
一样)回应:
get '/yoururl' do
erb :"answer.js"
end
还没有尝试过,但看起来正确。感谢您挖掘rails.js并找到答案。我不知道该在哪里寻找。你能告诉我这条线是什么吗? on('click.remote','.remote'=> click.remote?我知道.remote的目标是远程类 – Edward 2013-02-18 18:06:16
'$(document).on('click.remote','.remote',function(){ })'安装一个观察者来寻找''click''事件,这些事件源于类'remote'冒泡到'document'的元素。事件类型字符串中的'remote'('click.remote')是一个帮助你能够使用'off('click.remote')'解除绑定该处理程序。没有名称空间,只能解除绑定到文档的所有单击事件,这不是很灵活。 – 2013-02-19 06:48:05
- 1. call javascript
- 2. call()和apply()Javascript?
- 3. iframe call parent javascript
- 4. phonegap android 2.2 call javascript
- 5. javascript textbox call value when value changes
- 6. Javascript“Maximum Call Size Stack Exceeded”
- 7. from page * .aspx.cs call javascript function
- 8. Sinatra,JavaScript跨域请求JSON
- 9. jquery post call call not works
- 10. html onclick javascript function call to show something
- 11. Javascript继承.call .create和构造函数
- 12. 'call'如何在JavaScript中工作?
- 13. 了解.CALL的行为。适用在Javascript
- 14. async false with JSON-call not working(javascript)
- 15. 什么是JavaScript结构`{}`和`call()`?
- 16. Array to string conversion while ajax call from javascript
- 17. Call类
- 18. Call类
- 19. Call类
- 20. 在xcode 5中隐藏“*** First call call stack”
- 21. Bukkit Plugin Call IC2 Function
- 22. Sinatra-syncrony - NoMethodError at/
- 23. Call对象属性
- 24. 在Sinatra帮助程序中生成JavaScript
- 25. Sinatra + haml + jQuery,从javascript渲染haml/jquery
- 26. Sinatra无法识别会话的JavaScript
- 27. Sinatra与独角兽NGINX的Javascript错误
- 28. Sinatra - 如何在分支中添加javascript
- 29. mutidimensional数组从javascript/jquery到ruby/sinatra
- 30. 链轮/ sinatra
你可以添加删除路径的资源,并用状态代码回答。您可以使用客户端的ajax调用来调用此路由。 – three 2013-02-18 10:13:04