`

ruby rjs

阅读更多

配和使用  link_to_remote 'add',:update => "替换ID", :url => { :controller => '', :action => '',:id=>params}

因为RJS生成有关的JavaScript,它可很好地知道屏幕后面发生了什么。了解被生成的JavaScript会更容易调试问题并且可创建更复杂的应用程序。在一些情况下,你的RJS代码可以也变得很复杂或者是你不能用RJS来完美地完成的任务。如果你理解RJS如何生成JavaScript,你可以轻易地把你的代码放入到JavaScript库内并且使用RJS来访问你的新JavaScript对象和方法。

Since RJS is all about generating JavaScript, it is nice to know what is going on behind the scenes. Knowing about the JavaScript that is generated makes it much easier to debug problems and create more complex applications. At some point, your RJS code may become too complex or there may be a task that you can't perform elegantly with RJS. If you understand how RJS generates JavaScript, you can easily port your code into a JavaScript library and use RJS to access your new JavaScript objects and methods.

 

然而,对于下面定义,我在Ruby代码后面放置方法生成的JavaScriptRuby代码用注释#来标记,并且JavaScript//来标记。

Therefore, for all of the following definitions, I have placed the JavaScript that the method generates after the Ruby code. The Ruby code is marked with the comment # Ruby code, and the JavaScript is marked with // Generated JavaScript.

 

1<<(javascript) Writes raw JavaScript to the page. 给页面写原生JavaScript

2[](id) Returns a JavaScriptElementProxy for the DOM element with the specified id. Methods can be called on the returned element. Multiple method calls can also be chained together. 为指定idDOM元素返回一个 JaaScriptElementProxy。方法可以在返回的元素上调用。多个方法调用也可以被链在一起。

# Ruby 代码

page['header'].show

// 生成的JavaScript 代码

$("header").show();

# Ruby code

page['header'].first.second

// Generated JavaScript

$("header").first().second();

 

3assign(variable, value) Assigns a value to the JavaScript variable specified. Ruby objects are automatically converted to JavaScript objects by calling the object's to_json method if it has one, or inspect if it doesn't. 指派一个值给特定的 JavaScript 变量。如果有的话,通过调用对象的to_json方法Ruby对象被自动地转换为JavaScript对象。

# Ruby code

page.assign 'name', { :first => "Cody", :last => "Fauser" }

// Generated JavaScript

name = { "first": "Cody", "last": "Fauser" };

 

4alert(message) Displays a JavaScript alert dialog box with the provided message. 用提供的消息显示一个 JavaScript 警告对话框。

# Ruby code

page.alert 'An error occurred while processing your request'

// Generated JavaScript

alert("An error occurred while processing your request");

 

5call(function, arg, ...) Calls a JavaScript function and passes in zero or more arguments. 调用一个 JavaScript 函数并且传递零或多个参数。

# Ruby code

page.call 'displayError', 'An error occurred', 'Critical'

// Generated JavaScript

displayError("An error occurred", "Critical");

你可以在定制对象上调用方法,你通过指定变量名字与方法call添加给你的页面。

You can call methods on custom objects that you've added to your page by specifying the variable name and the method call.

# Ruby code

page.call 'inventory.showTotal'

// Generated JavaScript

inventory.showTotal();

 

6delay(seconds = 1) Executes the code within the block after delaying for the specified number of seconds. 在延迟指定秒数之后执行块内的代码。

# Ruby code

page.delay(5) do

page.visual_effect :highlight, 'navigation'

end

// Generated JavaScript

setTimeout(function() {

;

new Effect.Highlight("navigation", {});

}, 5000);

 

7draggable(id, options = {}) Makes the DOM element specified by the id draggable. 使由id指定的DOM元素是可拖放的。

# Ruby code

page.draggable('photo', :revert => true)

// Generated JavaScript

new Draggable('photo', {revert: true});

 

8drop_receiving( id, options = {}) Makes the DOM element specified by the id receive dropped draggable elements. Draggable elements are created using the RJS draggable method or by using draggable_element() Scriptaculous helper. 让由id指定DOM元素是可接受拖放的元素。可拖放元素是由RJSdraggable方法或使用Scriptaculous辅助方法draggable_element()创建。

# Ruby code

page.drop_receiving('photo', :url => { :action => 'add' })

// Generated JavaScript

Droppables.add("photo", {onDrop:function(element){new

Ajax.Request('/hello_world/add', {asynchronous:true, evalScripts:true,

parameters:'id=' + encodeURIComponent(element.id)})}});

 

9hide(id, ...) Hides one or more DOM elements. Specify the elements to hide by their DOM ids. 隐藏一个或多个DOM元素。

# Ruby code

page.hide('first', 'second')

// Generated JavaScript

Element.hide("first", "second");

 

10insert_html(position, id, *options_for_render) Inserts the HTML into the specified position in relation to the element. 插入HTML到相关元素的特定位置。

有效选项是:

The available positions are:

1):before The content is inserted into the page before the element. 内容被插入到页面内元素之前。

2):after The content is inserted into the page after the element. 内容被插入到页面内元素后面。

3):top The content is inserted into the element before the element's existing content. 内容被插入到现有元素内容的顶部。

4):bottom The content is inserted into the element after the element's existing content. 内容被插入到现有元素内容的底部。

# Ruby code

page.insert_html(:bottom, 'products', '<li>Refrigerator</li>')

// Generated JavaScript

new Insertion.Bottom("products", "<li>Refrigerator</li>");

 

11redirect_to(location) Redirect the browser to the location specified. redirect_to() passes the location to url_for(), so any of the arguments you normally use with url_for() can also be used with redirect_to(). 重定位浏览器到指定位置。Redirect_to()传递位置到 url_for(),因此你通常使用在 url_for() 内的任何参数都可以被用到redirect_to()内。

# Ruby code

page.redirect_to('http://www.google.com')

// Generated JavaScript

window.location.href = "http://www.google.com";

# Ruby code

page.redirect_to(:controller => 'inventory', :action => 'list')

// Generated JavaScript

window.location.href = "http://localhost:3000/inventory/list";

分享到:
评论

相关推荐

    rjs 技术

    rjs,全称Ruby JavaScript,是一种在Ruby on Rails框架中结合JavaScript的编程方式,主要用于创建动态和交互式的网页应用。它允许开发者使用Ruby语法来编写JavaScript代码,使得JavaScript的编写更加简洁、易读,...

    一些RJS资源和演示入门教程

    标题中的“一些RJS资源和演示入门教程”指的是与Ruby JavaScriptSerializer (RJS)相关的学习材料和实践示例,这是一门技术,主要用于在Rails框架下生成JavaScript代码。RJS通常用于更新页面的部分内容,无需刷新整个...

    RJS Templates for Rails

    RJS,全称是Ruby JavaScript,允许开发者用Ruby语言来生成JavaScript代码,从而避免了直接编写复杂的JavaScript脚本。 在Rails框架中,RJS模板通常与ActionController的`render :update`或`render :js`方法一起使用...

    RJS Cheatsheet

    RJS(Remote JavaScript Template)是Ruby on Rails框架中的一个特殊组件,用于在服务器端生成JavaScript代码,并将其发送到客户端执行,从而实现动态更新页面的功能。这种方式可以有效减少页面刷新次数,提升用户...

    使用Ruby on Rails开发LBS网站初探示例代码

    这几天一直在学习使用RoR(Ruby on Rails),想建立一个功能全面一点的LBS(Location Based Service)网站。但是对于我这个RoR的初学者(仅有几天时间)来说,毕竟太复杂了。因此本文试图简化原来的设计思路,抛弃一切...

    Ruby和Ruby on Rails中解析JSON格式数据的实例教程

    在Ruby on Rails框架中,虽然RJS(Ruby JavaScript Server Pages)提供了对AJAX的支持,但处理JSON数据通常更为常见。Rails内置了JSON支持,但在某些情况下,可能需要使用额外的插件,如`json_pure`。安装`json_pure...

    Ruby-[removed]让您的生活变得轻松-向您JavaScript语言添加大量类似Ruby的方法

    Ruby Javascript(RJS) 您一直希望拥有的javascript方法。 关于 我们都喜欢Ruby。 我们喜欢ruby的主要原因是编写代码非常容易。 该项目旨在将Ruby的乐趣带入Javascript语言中。 如何? 想象一下这样做: var msg = ...

    Rails相关电子书汇总二

    RJS全称是Ruby JavaScript,它是Rails中用于生成JavaScript代码的一种方式,主要用于在客户端执行一些动态操作,如更新页面部分,无需整个页面刷新。 在这个RJS Templates for Rails的电子书中,我们可以预期学习到...

    Java在WEB开发领域的革新

    Rails框架的流行部分归功于它对Ajax的友好支持,通过RJS模板简化了Ajax开发,以及对RESTful架构的深度集成。REST作为一种设计原则,确实成为了Web开发的趋势,但Java凭借其灵活性和不断进化的框架,如Spring Boot和...

    capistrano-requirejs-optimizer:用于 r.js 优化的 capistrano 任务

    requirejs_optimizer_config&lt;Hash&gt; base_url基本网址require_config_path需要配置的路径main_config_root_path&lt;string&gt; mainConfigRoot 目录的路径out目标路径withoutOptimize是或否rjs_recursive_url rjs 的 ...

    完成了AJAX树附原理分析

    实际上,通过RJS(Ruby JavaScript)可以直接操作页面元素,使用`insert_html`和`replace_html`等辅助方法,就能动态地添加或替换HTML内容,无需依赖局部模板。 在传统的树结构展示方式中,所有数据通常一次性从...

    Web开发敏捷之道-应用Rails进行敏捷Web开发-第三版.rar

    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 ...

Global site tag (gtag.js) - Google Analytics