Dim*_*try 13 javascript architecture playframework web angularjs
我想知道是否有人想出了一个在Play Framework和AngularJS之间绑定模型的好方法.例如,您点击了一个URL,该页面由Play Framework使用服务器端的模板为给定的Person对象生成.现在,您希望使用AngularJS来启用丰富的用户体验,并在客户端的JavaScript/AngularJS模板中使用该Person对象.
这样做的一种方法是从AngulraJS进行另一个Ajax调用并填充JS模型.这似乎是第一次调用生成该Person对象的页面.
另一种方法是做这样的事情:
person = @Html(FrontEnd.personToJSON(thisPersonObject));
Run Code Online (Sandbox Code Playgroud)
但是你需要在其中设置person对象$scope
.此外,这似乎是一个黑客,因为整个对象是JSON格式,将放在html页面内.
我知道有更好的方法来构建这个Web应用程序,例如使用SPA设计,其中Play只是一个服务层,具有用于数据检索和操作的干净API.这将使您能够在客户端严格执行MVC.
有什么想法吗?
小智 12
Angular被设计为一个单页面应用程序,因此您应该避免尝试使用数据来引导页面.相反,您应该为您的框架提供一个安静的API,并使用angular的资源或一些替代(例如:restangular)来接收和发送来自服务器的数据.
总结一下:您的应用程序/站点应该只使用api与您的框架进行通信.
您提出的是使用AngularJS的可行方法.另一种解决方案是在服务器端运行javascript代码,然后将输出发送到浏览器(类似于Airbnb的Rendr).但是,我知道AngularJS不存在这样的事情.由于范围的处理方式,可能无法实现.
使用引导的javascript对象方法,它很简单,您可以避免两次访问服务器.
所以,
使用AngularJS和Rails查看类似的问题.
如何引导数据,因为它是由Angular.js中的$ resource服务获取的
对于SEO,请使用此AngularJS SEO指南 [1].Google I/O的AngularJS工程师提到了这个指南[2].
[1] http://www.yearofmoo.com/2012/11/angularjs-and-seo.html
[2] http://www.youtube.com/watch?feature=player_detailpage&v=HCR7i5F5L8c#t=2238
归档时间: |
|
查看次数: |
3506 次 |
最近记录: |