我正在处理的当前项目的一半是用angularjs编写的,而大多数关键部分是用Rails编写的。
是否可以在不重写所有导轨页面的情况下使用角度?
在一天结束时,Rails已经在处理后端的所有业务逻辑。我想要的是使用angular来渲染数据而不重新加载页面以获取Rails渲染的模板的简洁方法。
因此,通过将我的application.html.erb更改为一行代码,可以获得部分页面:
<%= yield %>
现在,如果我重新加载url rails只返回与应该处理请求的控制器相关的特定业务逻辑的页面部分。
不,我需要做的是 - 使用angular来渲染这些页面的页脚和页眉 - 处理页面重新加载逻辑,以便在整页重新加载时,它应该加载单页面应用程序,然后呈现当前视图。
答案 0 :(得分:1)
基于博客:https://medium.com/@nshnt/migrating-rails-pages-to-angularjs-6c01ced6cb88,这似乎有效
如果request具有partial = true查询参数,则服务器返回不带页眉和页脚的部分。
helper_method :should_render_partial?, ....
def should_render_partial?
params[:partial].eql?("true")
end
在模板中:
<% unless should_render_partial? %>
<%= render partial: 'layouts/angular_app_template' %>
<% end %>
<% if should_render_partial? %>
<%= yield %>
<% end %>
在角度中,使用ui.router可以呈现相同的部分:
$stateProvider.state('home', {
url: '/home',
templateUrl: function(){
return "/home?partial=true";
},
});