AngularJS 使用双向客户端数据绑定(来自 AngularJS 开发人员指南):
有没有人考虑将服务器端模板引擎与AngularJS 双向客户端数据绑定结合使用。像这样的东西:
我正在考虑仅将 AngularJS 用于页面的部分(组件)?这是个好主意吗?
我想听听您是否已经有过类似方法的经验,以及有哪些缺点和优点......
AngularJS 使用双向客户端数据绑定(来自 AngularJS 开发人员指南):
有没有人考虑将服务器端模板引擎与AngularJS 双向客户端数据绑定结合使用。像这样的东西:
我正在考虑仅将 AngularJS 用于页面的部分(组件)?这是个好主意吗?
我想听听您是否已经有过类似方法的经验,以及有哪些缺点和优点......
Angular 是一个完整的 UI 渲染客户端框架。您可以将数据输入其中,它会呈现正确的 html。就其本身而言,Angular 是一个完全与任何服务器解耦的模板解决方案。
您正在尝试做的是将您的 Angular 应用程序重新耦合到您的服务器。这将是更多的工作,很少有好处,并且您将失去切换服务器技术的能力,但保持您的 Angular 应用程序不受影响。
从本质上讲,你不想这样做的原因与你不想让你的服务器为你渲染 JavaScript 的原因是一样的……它只是不那么明显,因为多年来我们一直在渲染我们所有的 HTML在服务器上。
最后的结果才是最重要的。UI 工作正常且应用程序易于维护。如果您发现您的解决方案更易于维护,那么您应该这样做。我很难想象使用只托管 JSON 的服务器比直接使用 HTML 和 JavaScript 更容易维护。
我和你有同样的困境,我来自使用 SMARTY 作为服务器端模板引擎的背景,我们最近开始使用 AngularJS。
我认为混合这两种解决方案在完全分离的本质上是合适的。即不要将页面的一部分与这两种技术混合使用,而是分别使用这两种技术。
例如,如果您有一个用户根本不会与之交互的列表页面,您可以完美地使用服务器端模板。
但是,如果在这种情况下页面涉及大量操作和用户端交互,那么您应该使用 Angular。
如果您使用的是 SPA(单页应用程序),则根本不要使用服务器端模板。
在我们最近制作的一个科尔多瓦应用程序中,我们使用了一种混合。修复我们以角度方式执行的表单、列表、标题和菜单等内容,某些部分(例如来自 RTE 的内容)或经常更改我们使用指令ngBindHtml添加的模板。如果客户想要更改布局或想要将当前未知的内容放入其中,则其背后的想法是在应用程序的内容页面中保持灵活。但我建议:如果您可以轻松维护应用程序(无需长时间的部署/批准过程),您应该以有角度的方式进行(但不要考虑 SEO;)。