Javascript Rails:在一个请求中呈现html和js
当用户访问我的站点时,我希望呈现index.html.haml和index.js.haml。我正试图让我的JS离开视图 目前,它只是呈现html。当然,使用html和js向块中添加respond_只会呈现htmlJavascript Rails:在一个请求中呈现html和js,javascript,ruby-on-rails,Javascript,Ruby On Rails,当用户访问我的站点时,我希望呈现index.html.haml和index.js.haml。我正试图让我的JS离开视图 目前,它只是呈现html。当然,使用html和js向块中添加respond_只会呈现html 我该怎么做?有更好的办法吗?我不想在/assets/JS中包含JS,因为ruby是在JS中执行的。rails控制器操作一次只能响应一个HTTP请求,即使它可以响应多个HTTP请求,JS也是从HTML请求的,初始请求是以任何方式发出的,因此它是一个单独的请求 如果为了清晰起见,希望将Ja
我该怎么做?有更好的办法吗?我不想在/assets/JS中包含JS,因为ruby是在JS中执行的。rails控制器操作一次只能响应一个HTTP请求,即使它可以响应多个HTTP请求,JS也是从HTML请求的,初始请求是以任何方式发出的,因此它是一个单独的请求 如果为了清晰起见,希望将Javascript保存在另一个文件中,那么可以创建一个分部文件并以这种方式加载它 在响应控制器操作并将@my_var传递给部分/views/mycontroller/my_action.html.erb的视图中:
<%= render 'my_action_js', :my_var => @my_var %>
以及部分./views/mycontroller/_my_action_js.html.erb
<script type="text/javascript">
alert(<%= my_var %>);
</script>
rails控制器操作一次只能响应一个HTTP请求,即使它可以响应多个HTTP请求,JS也是从HTML请求的,初始请求是以任何方式发出的,因此它是一个单独的请求 如果为了清晰起见,希望将Javascript保存在另一个文件中,那么可以创建一个分部文件并以这种方式加载它 在响应控制器操作并将@my_var传递给部分/views/mycontroller/my_action.html.erb的视图中:
<%= render 'my_action_js', :my_var => @my_var %>
以及部分./views/mycontroller/_my_action_js.html.erb
<script type="text/javascript">
alert(<%= my_var %>);
</script>
顺便说一句,javascript并不是呈现出来的,它只是一个提示。渲染是向用户显示内容。顺便说一句,javascript不是渲染的,只是一个提示。渲染是向用户显示内容。@KreeK,Rails是否愿意这样做,将javascript部分作为ajax轮询请求,从数据库获取数据,然后进行渲染?@yeenow123不确定是否是Rails的方式:但我看不出有任何问题。我的一般规则是,如果是少量数据,请将其与原始请求一起传递,如果数据较大,并且您希望在页面上获取一些内容,这样用户就不会放弃,然后在事后加载。@KreeK,Rails是否喜欢将javascript部分作为ajax轮询请求来从db获取数据,然后进行渲染?yeenow123不确定是否是Rails的方式:但我看不出有什么问题。我的一般规则是,如果是少量数据,则将其与原始请求一起传递,如果数据较大,并且您希望在页面上获得一些内容,这样用户就不会放弃,然后在事实发生后加载它。