将 Rails 页更改为 UI.router 页
Changing Rails Pages to UI.router pages
我目前正在进行的项目有一半是用 angularjs 编写的,而大多数关键部分是用 Rails.
编写的
是否可以在不重写所有 rails 页的情况下使用 angular?
归根结底,Rails 已经在后端处理所有业务逻辑。我想要的只是一种使用 angular 呈现该数据而无需重新加载页面以获取由 Rails 呈现的模板的简洁方法。
所以可以通过将我的 application.html.erb 更改为一行代码来获取页面的一部分:
<%= yield %>
现在,如果我重新加载 url rails 仅 returns 页面中与应处理请求的控制器的特定业务逻辑相关的部分。
不,我需要做的是
- 使用 angular 呈现这些页面的页脚和页眉
- 处理页面重新加载逻辑,以便在整个页面重新加载时,它应该加载单页应用程序,然后呈现当前视图。
基于博客:https://medium.com/@nshnt/migrating-rails-pages-to-angularjs-6c01ced6cb88,这似乎有效
如果请求有一个 partial=true 查询参数,服务器 returns 部分,没有页眉和页脚。
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 %>
在 angular 中,使用 ui.router 可以呈现相同的部分:
$stateProvider.state('home', {
url: '/home',
templateUrl: function(){
return "/home?partial=true";
},
});
我目前正在进行的项目有一半是用 angularjs 编写的,而大多数关键部分是用 Rails.
编写的是否可以在不重写所有 rails 页的情况下使用 angular?
归根结底,Rails 已经在后端处理所有业务逻辑。我想要的只是一种使用 angular 呈现该数据而无需重新加载页面以获取由 Rails 呈现的模板的简洁方法。
所以可以通过将我的 application.html.erb 更改为一行代码来获取页面的一部分:
<%= yield %>
现在,如果我重新加载 url rails 仅 returns 页面中与应处理请求的控制器的特定业务逻辑相关的部分。
不,我需要做的是 - 使用 angular 呈现这些页面的页脚和页眉 - 处理页面重新加载逻辑,以便在整个页面重新加载时,它应该加载单页应用程序,然后呈现当前视图。
基于博客:https://medium.com/@nshnt/migrating-rails-pages-to-angularjs-6c01ced6cb88,这似乎有效
如果请求有一个 partial=true 查询参数,服务器 returns 部分,没有页眉和页脚。
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 %>
在 angular 中,使用 ui.router 可以呈现相同的部分:
$stateProvider.state('home', {
url: '/home',
templateUrl: function(){
return "/home?partial=true";
},
});