.js文件在不respond_to的情况下调用
.js file being called without respond_to
我有一个评级控制器,其创建操作通过Javascript调用。 我的评级文件夹中有一个 create.js 文件。 我认为为了调用 create.js 文件,您需要这样的东西
respond_to do |format|
format.js
end
但是,当我删除它时,仍在调用创建.js文件。 这是因为在创建操作中调用了 create.js(即方法名称和.js文件匹配(? 谢谢!
更新:当缺少 format.js 时,它找不到 DOM 的元素。 例如,如果我有类似的东西
$('#id_3').html('<%=escape_javascript render(:partial => 'show') %>');
部分"显示"被执行,正如我在终端中看到的那样,但它找不到div "id_3",因此部分永远不会出现在 DOM 中。 任何澄清将不胜感激,谢谢
轨道魔法!如果指向资源的链接类似于/dogs/1.js,那么respond_to会按照您的想象来处理它。试着打电话给/dogs/1,看看会发生什么。还有效吗?现在尝试在格式.js之前添加格式.html。这应该可以让您很好地了解respond_to的工作原理。
这就是 Rails 的工作方式:它呈现与操作同名的视图。
如果您有多个具有相同名称(采用不同格式(的视图,则必须在请求中指定所需的视图,并使用 respond_to
方法相应地做出响应:
def index
respond_to do |format|
format.js { ... }
format.html { ... }
...
end
end
GET /index.html
将呈现索引.html.erb 文件(假设您使用的是 ERB(
GET /index.js
将呈现索引.js.erb 文件
相关文章:
- 如何在未直接触发的情况下停止事件
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 在不使用jquery的情况下查找页面中的所有锚点并附加函数
- 在不打开聊天屏幕的情况下制作Zopim-ding代理
- 在不阻止默认行为的情况下检测IE10中的缩放
- 如何在不传递此信息的情况下查找被调用的元素
- 如何在不刷新页面的情况下更新显示框
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- JavaScript-在手机上不工作的情况下,在外部单击时隐藏元素
- 在我的情况下,如何进行http请求
- 在不知道深度或父属性的情况下从对象中删除属性
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- ROR:如何在不重新加载浏览器的情况下从控制器获取参数
- 如何在不影响其他元素的情况下扩展DIV
- 如何在内联依赖项并将图像转换为dataURI的情况下完全提取网页
- 在不移动内部文本的情况下缩放元素的效果
- 在不设置协议的情况下,使用javascript/jquery更改iframe-src
- 默认情况下折叠和展开嵌套列表
- 如何在不单击javascript中的按钮的情况下触发事件
- 我们如何在不更改url的情况下使用锚点点击从一个页面重定向到另一个页面