RJS
模板会膨胀的,但在你应用程序的其它部分使用这些方法却很好。是否可以在你的
ptototype
回调或静态
javascipt
文件内使用奇妙的
javascript
辅助方法呢?
下面是个例子:
<%= link_to_function('reorder', update_page do |page|
page.send :record, sortable_element('items',
:url => viewbox_url(:action => 'reorder',
:id => @view.id)).match(/Sortable.create[^n]+/)
page.hide 'contents_controls'
page.show 'contents_reorderable'
end) %>
如果你深入探究
RJS
模板是如何工作的,它基本上执行的代码在一个
update_page
块内。在
#link_to_function
内我所要做的是在
link
的
onclick
事件内输出结果。然而,若你希望
HTML
整洁些的话。我们可以把它放在一个
javascript
库内。
创建控制器:
我们希望
URL
看起来与任何旧的
javascript
如
‘javascripts/foo.js’
类似。
# generate the controller first
# ./script/generate controller javascripts
# create a route
map.connect 'javascripts/:js', :controller => 'javascripts', :action => 'show',
:requirements => { :js => /.js$/ }
# the controller action
def show
headers["Content-Type"] = 'text/javascript'
render :action => params[:js][0..-4]
end
# the rhtml view
function reorder() {
<%= sortable_element('items', :url =>
viewbox_url(:action => 'reorder', :id => @view.id)).match(/Sortable.create[^n]+/) %>
<% update_page do |page|
page.hide 'contents_controls'
page.show 'contents_reorderable'
end -%>
}
还有什么?
你可以打开页面缓存以便不用每次都渲染
javascript
视图。这就是为什么用
.js
扩展名定义路由是必须的。如果对你当前静态内容缓存
js
文件有问题的话,可以给你的
javascript
控制器一个不同的路径。
现在你有了这个
javascript
控制器,你可以使用它来加强其它的
javascript
函数,如
AJAX
调用。特别是如果你喜欢使用
Behavior
库来添加回调,这会让你感到相当方便。
http://habtm.com/articles/2005/12/15/another-use-for-rjs-templates
http://my4java.itpub.net/post/9983/215442
分享到:
相关推荐
在Rails框架中,RJS模板通常与ActionController的`render :update`或`render :js`方法一起使用。这些方法会触发一个RJS模板的执行,生成的JavaScript代码会被发送到客户端并在浏览器中执行。通过这种方式,开发者...
4. **响应处理**:在处理Ajax请求的控制器中,可以返回一个rjs模板,动态更新页面并反馈给用户。 在描述中提到的博文中,作者分享了一些关于如何使用rjs的实际示例和经验,这可能是对rjs技术的具体应用和实践的探讨...
虽然具体内容无法在这里详述,但可以预期该博客会涵盖RJS的基本概念、如何在Rails项目中集成RJS、编写RJS模板以及解决常见问题等。 标签“源码”和“工具”表明这个压缩包可能包含了示例代码和相关工具,帮助读者...
通过这个项目,开发者不仅可以学习如何在StackBlitz上使用JavaScript进行开发,还能掌握Tailwind CSS的用法,理解utility-first CSS设计模式,这对于提升前端开发技能和提升工作效率都是大有裨益的。同时,使用在线...
7. **RJS资料**(59971,0134312805_rjs-258987.zip):"RJS"可能是作者或教师的缩写,这部分可能包含额外的阅读材料、案例分析或其他补充教学资源,丰富了学习体验。 总的来说,这些资料全面覆盖了计算机网络的基础...
1. **文件指纹(Fingerprinting)**:一种常用的防止浏览器缓存的方法是为每个输出文件添加一个唯一的哈希值,通常是在文件名后面追加。当文件内容改变时,哈希值也会随之变化,这样浏览器就会认为这是一个新的文件...
经过项目中真正通过RJS实现AJAX树,可知,通过使用insert_html、replace_html等辅助方法,可直接操作页面上的元素,无须使用局部模板。 整个的实现过程还是有点曲折: 之前使用的生成树结构的页面,是利用从服务器...
24.3 RJS模板 451 24.4 结论 456 第25章 ActionMailer 457 25.1 发送邮件 457 25.2 接收邮件 465 25.3 电子邮件的测试 467 第26章 Active Resource 469 26.1 Active Resource的替代品 469 26.2 给我看代码! 471 ...
这篇文档将深入讲解RequireJS的核心概念、用法以及相关的插件。 **RequireJS核心概念** 1. **模块化**:RequireJS 提供了一种组织代码的方式,将功能分散到不同的模块中,每个模块都有自己的作用域,避免了全局...