`
sunfengcheng
  • 浏览: 183603 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用 RJS 模版来更新页面

阅读更多
[size=large][color=indigo]使用 RJS 模版来更新页面
如果你想使用 ajax 来调用更新页面中的多个 ODM元素, 具体的说你想在一个应用程序中允许更新你的恶添加项等操作。
 
还是在你的布局中将 Prototype 和样式包含进去


app/views/layouts/tasks.rhtml:

<html>
<head>
  <title>Tasks: <%= controller.action_name %></title>
  <%= javascript_include_tag :defaults %>
  <%= stylesheet_link_tag 'scaffold' %>
</head>
<body>

<p style="color: green"><%= flash[:notice] %></p>

<%= yield %>

</body>
</html>
通过载入 一个局部模版,index视图中显示了任务列表, 
app/views/tasks/index.rhtml:

<h1>My Tasks</h1>

<div id="notice"></div>

<div id="task_list">
  <%= render :partial => 'list' %>
</div>

<br />

<% form_remote_tag :url => {:action => 'add_task'} do %>
  <p><label for="task_name">Add Task</label>;
  <%= text_field 'task', 'name'  %></p>  
  <%= submit_tag "Create" %>
<% end %>

_list.rhtml 局部模版将迭代所用的任务,并显示成列表。
app/views/tasks/_list.rhtml:

<ul>
<% for task in @tasks %>
  <% for column in Task.content_columns %>
    <li><%=h task.send(column.name) %></li>
  <% end %>
<% end %>
</ul>
接着,   为了显示和添加的恶任务,定义两个方法 index和add_task。
app/controllers/tasks_controller.rb:

class TasksController < ApplicationController

  def index
    @tasks = Task.find :all
  end

  def add_task
    @task = Task.new(params[:task])
    @task.save
    @tasks = Task.find :all
  end
end


最后创建一个RJS模版,用来定义那些元素使用 javascript 来更新
app/views/tasks/add_task.rjs:

page.replace_html 'notice', 
    "<span style=\"color: green;\">#{@tasks.length} tasks,  
         updated on #{Time.now}</span>" 

page.replace_html 'task_list', :partial => 'list'

page.visual_effect :highlight, 'task_list', :duration => 4 
[/color][/size]
3
0
分享到:
评论

相关推荐

    rjs 技术

    4. **响应处理**:在处理Ajax请求的控制器中,可以返回一个rjs模板,动态更新页面并反馈给用户。 在描述中提到的博文中,作者分享了一些关于如何使用rjs的实际示例和经验,这可能是对rjs技术的具体应用和实践的探讨...

    RJS Templates for Rails

    1. **Page对象**:在RJS模板中,`page`对象是主要的接口,它提供了许多方法来操作DOM元素,如`replace_html`, `insert_html`, `visual_effect`等,用于更新页面内容或实现动画效果。 2. **JavaScript表达式**:Ruby...

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

    标题中的“一些RJS资源和演示入门教程”指的是与Ruby ...通过研究这些文件,开发者可以学习到如何在Rails项目中使用RJS来增强用户体验,实现页面的动态更新,并理解RJS与AJAX、Rails框架的交互方式。

    Rails相关电子书汇总二

    4. **RJS模板**:深入学习如何创建和使用RJS模板,以便在服务器端生成JavaScript代码,然后在客户端执行。 5. **AJAX与JavaScript**:探讨Rails如何与AJAX(异步JavaScript和XML)结合,实现页面无刷新更新,提升...

    C# asp.net 三层代码自动生成器

    FormView里可以选择使用日期控件RJS.Web.WebControl.PopCalendar,如果要用到日期控件的话,请把目录PopCalendar2005复制到网站目录里并且引用一下RJS.Web.WebControl.PopCalendar.dll,这个控件是别人的免费开源的控件...

    gulp-blog:gulp多页模块化

    这个分支是使用了rjs作为打包方式,打包配置文件在conf/gulp.rjs.conf.js中, 实现了公共模块与业务模块分离,最大限度优化性能。 也是基于gulp+requirejs+arttemplate+jquery+express的前后端分离的响应式web项目,...

    rjs:弹簧 + angularjs + requirejs + r.js

    在"rjs-master"这个压缩包中,可能包含了基于上述技术的示例项目或框架,开发者可以研究其结构和配置,学习如何整合这些技术来构建自己的应用。通过理解和掌握这个技术栈,开发者能够构建出既具有现代化前端体验,又...

    使用gulp解决requireJs项目前端缓存问题

    RequireJS作为一款优秀的AMD(Asynchronous Module Definition)规范实现者,允许我们按需加载和组织代码,但随之而来的问题是,当项目更新时,浏览器可能会因缓存旧的JavaScript文件而导致更新无法生效。...

    完成了AJAX树附原理分析

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

    requirejs中文文档

    RequireJS 社区提供了许多插件来扩展其功能,例如: 1. **text!插件**:用于加载文本文件,如HTML模板或CSS。 2. **i18n!插件**:支持国际化,加载不同语言的资源文件。 3. ** almond**:轻量级的模块加载器,用于...

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

    gulprequirejsless多应用编译构建方案

    这个插件提供了`rjs`任务,用于运行RequireJS的optimizer,将多个模块合并成一个或几个优化过的文件,减小文件大小,提高页面加载速度。配置中,我们可以指定主模块、优化选项以及输出路径,确保每个应用的模块都能...

    AngularJS 工作原理详解

    7. 使用$compile服务编译DOM,将模板转换成浏览器可识别的HTML。 8. ng-init指令对$rootScope里面的变量进行赋值操作。 9. 表达式{{name}}被替换,如示例中的“Hello{{name}}!”被替换成“HelloWorld!”。 完成初始...

Global site tag (gtag.js) - Google Analytics