好的,这个想法可能看起来有点疯狂,而且有点疯狂(至少对我来说是这样)。我有一个相当标准的 Rails 应用程序(一些内容页面、一个博客、一个新闻块、一些身份验证)。我想把它变成一个单页应用程序。
我想要完成的是:
AJAX
所有页面都像 using 一样被获取turbolinks
,除了 AJAX 仅返回view part
(布局中的 yield 部分)而没有布局本身,它保持不变(响应中的数据更少,渲染和加载时间更快)。- 这些页面大多只是带有
AngularJS
标记的静态 html,因此不需要处理太多。 - 所有实际数据都通过 JSON 单独加载并填充到视图中。
- 网址和页面标题也会相应更改。
我已经考虑这个概念很长一段时间了,但我似乎无法想出一个解决方案。在这一点上,我已经有了一些关于如何实际完成的想法以及一些我无法通过的问题。非常感谢任何想法或解决方案。或者可能是我刚刚疯了,加载页面的 3 个小请求比我需要在服务器端完成所有渲染的大请求更糟糕。
所以,这是我的想法和已知问题。
- 当用户第一次访问应用程序时,带有角度标记的视图模板会定期呈现,第二个请求来自
Angular Resource
. - 然后在 ngClick 上将地址发送到内容包装器的 ngInclude 的任何链接。
- 如何在任何链接上绑定该 onClick 以及如何从该绑定中排除某些链接(例如,指向外部身份验证服务的链接)?
- 如果请求来自 Angular,我如何告诉服务器不要呈现布局?我虽然关于向请求添加参数,但可能有更好的主意。
- 当 ngInclude 获取请求的模板时,它会触发该模板中控制器(通常是单个控制器)的 ngInit 函数,并从服务器获取 JSON 格式的数据(以及正确的页面标题)。
- Angular 用接收到的数据填充模板,将浏览器 url 设置为链接的 url,并将页面标题设置为刚刚获得的内容。
- 如何更改页面标题和页面 url?可以使用 jQuery 更改标题,但有没有通过 Angular 本身的方法?
- 再一次,我一直在考虑某种动画,以使这种变化更加花哨。
- 利润!
所以。你们有什么感想?