Cri*_*ian 2 rendering partials coffeescript ruby-on-rails-3.1
我想创建一个可以在加载页面后使用AJAX调用的通用控制器,并根据控制它的控制器更新页面上的不同内容.
目的是允许更好的页面和片段缓存,同时为用户显示自定义元素.
我的框架看起来像这样:
controllers/general_ajax_controller.rb
views/general_ajax/on_page_load.js.coffee
./_update_some_stuff.js.coffee
Run Code Online (Sandbox Code Playgroud)
on_page_load控制器中的操作处理逻辑,确定要加载哪些部分,视图将呈现部分.
在on_page_load.js.coffee视图中我有这个代码(简化):
<%= render "update_some_stuff" %>
Run Code Online (Sandbox Code Playgroud)
哪个应该呈现部分.相反,我得到这个错误:
ActionView::Template::Error (SyntaxError: Reserved word "function" on line 2):
app/views/general_ajax/on_page_load.js.coffee:1:in `_app_views_general_ajax_on_page_load_js_coffee___2304196970850216490_70321203283120'
Run Code Online (Sandbox Code Playgroud)
我认为coffeescript是在将它包含在视图中之前编译的(这是咖啡并且不支持编译的js)
如果我将on_page_load视图的扩展名更改为.js.erb然后它可以工作.(奇怪的是,我必须在它运行之前重启我的服务器,你知道为什么吗?)
你认为这是coffeescript中的问题还是不好的做法,因此不受支持?
作为一个侧面讨论,您如何看待我的动态编程方法?
一种解决方案是将原始解析的javascript嵌入到视图中.
注意后面的滴答声(它告诉coffeescript这是原始的javascript)并使用raw()来撤消HTML渲染部分的转义.
`
<%= raw(render("update_some_stuff")) %>
`
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2261 次 |
| 最近记录: |