AngularJS客户端数据绑定和服务器端模板

时间:2012-10-27 18:39:37

标签: javascript data-binding angularjs template-engine

AngularJS使用双向客户端数据绑定(from AngularJS Developers guide): Two-Way Data Binding

是否有人考虑将服务器端模板引擎 AngularJS双向客户端数据绑定混合使用。像这样的东西: Mixed data binding

我正在考虑将AngularJS仅用于页面的部件(组件)?这是个好主意吗?

我想听听你是否已经有类似方法的经验,有什么缺点和优点......

3 个答案:

答案 0 :(得分:10)

Angular是一个完整的UI呈现客户端框架。您可以将数据提供给它,它将呈现正确的HTML。 它自己的Angular是一个完全从任何服务器解耦的模板解决方案

您尝试做的是将Angular应用程序重新连接到您的服务器。这将是更多的工作,几乎没有什么好处,您将失去你的能力切换服务器技术,但保持您的角度应用程序不受影响。

从本质上讲,你不希望这样做是出于同样的原因,你不希望你的服务器为你渲染JavaScript ...它只是不那么明显,因为我们已经渲染了所有这些年我们的HTML在服务器上。

最终结果是重要的。 UI工作正常,应用程序易于维护。如果您发现您的解决方案更易于维护,那么您应该这样做。我很难想象比直接的HTML和JavaScript更容易维护,服务器除了托管JSON之外什么都不做。

答案 1 :(得分:3)

我遇到了同样的困境,我来自使用SMARTY作为服务器端模板引擎的背景,我们最近开始使用AngularJS。

我认为混合两种解决方案都适用于完全分离的本质。即不要将页面的一部分与两种技术混合使用,而是分别使用两种技术。

例如,如果您有一个用户根本不会与之交互的列表页面,您可以完美地使用服务器端模板。

但是如果页面涉及大量的操作和用户端交互,在这种情况下,Angular就是你应该使用的。

如果您正在使用SPA(单页应用程序),请根本不使用服务器端模板。

答案 2 :(得分:0)

在我们最近制作的cordova应用程序中,我们使用了一种混合方式。修复我们以角度方式执行的表单,列表,标题和菜单等内容,一些部分,例如来自RTE的内容或经常更改的模板,我们使用指令ngBindHtml添加。如果客户想要更改布局或想要将当前未知的内容放入其中,背后的想法是在应用程序的内容页面中保持灵活性。 但我建议:如果你可以轻松维护应用程序(没有长时间的部署/批准过程)你应该采用角度方式(但没有考虑到SEO;)。