一、关于:
RJS
模板类似于
.rhtml
模板,除了它们包含
Javascript
命令并有一个
.rjs
扩展名。
Action/view
的命名方式依然是一样的。与通常用于渲染一个动作结果的常规模板不同的是,这些模板生成如何修改一个现有被渲染页面的指令。这让它可轻易地修改声明为
Ajax
应答页面上的多个元素。这些模板的动作在使用
Ajax
的后台调用并更新发起请求的页面。
当前支持的
RJS
方法
/
特征:
1
、
insert_html
2
、
replace_html
3
、
show
4
、
hide
5
、
visual_effect
6
、
alert
7
、
redirect_to
8
、
call
9
、
assign
10
、
<<
11
、
toggle
12
、
delay
二、安装:
当前两种方式可以在你的
Rails
应用程序内使用
RJS
模板。最简单的方式是更新你的
Rails
来使用
edge rails
。其次是把
RJS
模板安装为一个插件。
三、
Edge Rails(
边缘化的
Rails )
:
Edge Rails
的意思是你在本地运行
Rails
的最近
SVN
,而不使用的
Gem
。通常检查
/vendor
目录,
Rails
将自动使用它而不是使用由
Gem
安装到你机器上的。
让你的
Rails
应用程序运行在
Edge rails
上的最简便途径是,使用下面命令来更新最近的
Edge rails
到你的应用程序的
vendor
目录内:
rake freeze_edge
rake update_javascripts
这会把整个
Rails
框架安置到你的应用程序内。这就允许你不用安装
Rails
就可跑应用程序。
与之相反的解冻操作是:
rake unfreeze_rails
有关
Edge Rails
的更多信息可参阅:
http://wiki.rubyonrails.com/rails/pages/EdgeRails
四、插件:
按下面步骤安装
RJS
模板插件:
script/plugin discover
这将询问你是否想添加插件。提示时要添加
codyfauser.com
。这样可确保你有正确的东西可运行:
script/plugin sources
现在执行:
script/plugin install javascript_generator_templates
做为选择,如果你不想添加
codyfauser.com
,你可以直接安装插件:
script/plugin install
http://www.codyfauser.com/svn/projects/plugins/javascript_generator_templates/
五、例子:
清单:
1
、
SQL
:
CREATE TABLE categories (
id serial NOT NULL,
name character varying(64)
);
2
、初始化安装:
rails rjs_demo
cd rjs_demo
rake freeze_edge
rake update_javascripts
script/generate controller home index add
script/generate model category
3
、视图模板
app/views/home/index.rhtml
:
<%= form_remote_tag :url => { :action => 'add' } %>
Category: <%= text_field 'category', 'name' %>
<%= submit_tag 'Add' %>
<%= end_form_tag %>
<ul id="categories">
<% @categories.each do |category| -%>
<li><%= category.name %></li>
<% end -%>
</ul>
没有什么特殊东西,只是用分类清单和一个表单来添加更多的分类。注意
<ul>
标记的标识符是
'categories'
。如果它是一个
<table>
或
<tbody>
的标识符工作也是一样的。
4
、控制器方法
app/controllers/home_controller.rb
:
class HomeController < ApplicationController
def index
@categories = Category.find( :all )
end
def add
@category = Category.new
if request.post?
@category = Category.create( params[:category] )
end
end
end
把添加的分类放到数据库并赋值它给要在模板中使用的实例变量
@category
。动作完成后它会查找名为
add.*
的模板,我们在这儿称它为
add.rjs
模板。
5
、
RJS
模板
app/views/home/add.rjs
:
if @category && @category.errors.empty?
li = content_tag( 'li', @category.name )
page.insert_html :bottom, 'categories', li
page.visual_effect :highlight, 'categories', :duration => 3
end
如果创建的
category
没有错误,那么我们把它添加到
‘categories’
清单的底部。此处的魔术是
‘page’
对象。在
page
对象内,你可以在
html
文档的任意多个元素上工作。
Page
可以使用所有在上面列出的方法。
http://rewrite.rickbradley.com/articles/2006/02/06/rjs-templates
http://my4java.itpub.net/post/9983/215424
分享到:
相关推荐
RJS D4000+条码检测仪中文操作说明书,比较简洁的中文操作说明书,都可以看明白的
条码检测仪/条码等级扫描器RJS D4000+中文操作说明书
RJS D4000+条码检测仪分析结果说明书以及使用过程中注意事项。
RJSD4000条码检测仪 RJS D4000+中文设置操作指南
RJS templates are an exciting and powerful new type of template added to Rails 1.1. Unlike conventional Rails templates that generate HTML or XML, RJS templates generate JavaScript code that is ...
这是r.js+require+node 打包的源文件跟生成之后的文件
NULL 博文链接:https://hlee.iteye.com/blog/354530
RJS.Web.WebControl.PopCalendar.dll下载,用于网页asp 时间选取周别
Rust上JavaScript rjs是Rust中的本机JavaScript实现。该项目rjs的目标是在Rust中提供一种快速的本机JavaScript实现。 当前rjs处于alpha状态,这意味着性能和稳定性不能代表我们想要的最终结果,并且公共API可能仍会...
条码检测仪RJS D4000+ HHP/honeywell QC800故障和维修指导
今天才想起来把这本书给大家看!上面讲的不错,代码直接有些可以使用。 博文链接:https://sunfengcheng.iteye.com/blog/218527
无人驾驶自动驾驶智能汽车:理论,算法和实现【5rjs.cn】 无人驾驶自动驾驶智能汽车:理论,算法和实现【5rjs.cn】
资源来自pypi官网。 资源全名:calmjs.rjs-1.0.0.tar.gz
RJS参考手册,Rails RJS开发得力手册!强力推荐!!
rjs:R中的建模。JavaScript中的交互性。 rjs旨在帮助您利用JavaScript的可视化库和R的建模包来构建量身定制的交互式应用程序。 (这是的重构版本,在很大程度上是向后兼容的。我不久jsReact教程rjs到rjs ,现在请...
gulp-require-rjs 扩展代码形式 r.js优化插件描述到r.js的gulp接口。 您可以使用r.js优化器同时打包多个文件。 可以将参数直接传递到r.js。 添加一个名为outPath的参数,以便可以更改打包方式; 默认值为baseUrl 。...
rjs:JavaScript中的R 在JavaScript中引入R,这是一种由支持的将R代码直接插入网站的。 您可以通过2个简单的步骤使用它。步骤1 在html文件的任意位置添加[removed][removed] (或在本地下载r.js )。第2步将class = ...
gulp-rjs2 gulp 的 Requirejs 插件,支持组件模式 安装 使用安装 npm install --save-dev gulp-rjs2 用法 var rjs = require ( 'gulp-rjs2' ) ; // build libs.js gulp . task ( 'rjs-libs' , function ( ) { //...
gulp-简单-requirejs gulp requirejs 启动器,将所有参数传递给 rjs合理的我们需要一个 requiredjs gulp 插件,一方面,它支持高级特性,如包含、源映射等,另一方面,不从gulp.src开始,而是自己启动流,使用标准 ...