2014-12-23 35 views
-2

我有一个symfony2应用程序也支持REST。我想听听是否是一个好主意,浏览angularjs的学习曲线,或者坚持使用jQuery和树枝。它似乎像树枝已经有一些很好的功能类似于angularjs,如过滤器和东西。另外,如果我使用角度,它会打破symfon的MVC,因为我很可能会有更少的意见。另一方面,我喜欢角度的反应,这就像新的趋势。你能列举一些在这个范围内使用角度的优点和缺点吗?Twig + jQuery vs angularjs

更新 谢谢大家详细解答,但我仍然失踪,你说angularjs没有制动服务器端MVC的一部分。在典型的后端MVC中,我们有一种自下而上的方法,即控制器正在与模型进行通信以准备数据传递到视图。所以我的PostController会将一个Pot对象列表传递给视图,并且使用树枝我可以很好地遍历它们并打印它们的属性。然而,在一个典型的角度应用中,相反。我们有一个自顶向下的方法,View以Nothing开头,后来与控制器进行通信以获取所需的数据(通常采用JSON格式)来呈现页面的不同部分。

回答

6
  • 枝条是服务器端,而AngularJS是客户端。你无法真正地比较它
  • AngularJS没有打破Symfony的MVC。 Symfony只是提供另一个用途:它不提供完整的应用程序,它只提供一个可以被angular.js使用的API
  • 如果你想使用AngularJS,因为它是一个新的趋势,不要这样做。如果你不需要它,那么遵循一个趋势是没有意义的。
  • AngularJS适用于Symfony

最后,它完全归结为项目。一个项目将受益于使用AngularJS,另一个只会让事情变得更加困难。

0

AngularJS是一个完整的MVC框架WebApplication的,而jQuery是更多的JavaScript功能添加到您的网站的特定部分,用更少的代码量...

角是一个很好的解决方案,但有点多学习,而jQuery是有点少学习...

这将取决于你的技能和你想要做的网站的那种......

对于大的WebApp我建议角,只是某些JS enhencements使用jQuery

3

我有一个symfony2应用程序也支持REST。

我假定你的意思是你已经在Symfony中创建了RESTful数据驱动的api,它使用xml/json或其他一些以数据为中心的非html格式?如果不是这样,我会感到困惑,因为所有网站都以一种通用的方式与REST重叠。

我想听听看看angularjs的学习曲线还是坚持jQuery和树枝是个好主意。

到目前为止,最简单的方法(如果您已经熟悉Symfony)就是利用Twig来渲染视图并用jQuery为客户端动态/异步渲染提供视图。 Angular比Twig增加了更多的概念层。例如它在客户端复制模型管理。 Twig对于将视图映射到模型的阻抗非常低,而Angular视图将需要更多的代码来管理此映射。如果架构正确,在某些情况下,将数据从数据中解耦可能是一个巨大的好处。这取决于你的团队的需求。

我的建议是在Twig和Angular中实现一小部分功能,并记住它们在运行时考虑因素和真实世界机制方面有很大不同。最重要的区别是Angular只作为客户端渲染,而Twig作为服务器端渲染。这些概念是根本不同的。应该指出,没有理由不能在服务器上预渲染Angular,或者使用Twig使浏览器呈现。这些都是先进的和非标准的方法,目前不是Twig或Angular的本地特性,但完全可以作为优化步骤。

的“爽”你属性角度主要是在特定环境和特定的HTML + CSS复杂的任意功能状态变化之间差异的大小。无论您将主要的视图渲染放在服务器或客户端上,您都可以正确优化该解决方案,以便对用户不显眼。 问题是您想要优化工作的哪一方面?

它似乎像树枝已经有一些很好的功能类似于angularjs,如过滤器和东西。另外,如果我使用角度,它会打破symfony的MVC,因为我很可能会有更少的意见。

一般来说,Angular和Symfony的设计与它们视图渲染的语义异常类比是不一致的,这可能会误导你。决定哪种方式更适合你和你的团队的最好方式是尝试两种方式。

通过使用Angular,你不会轻易破坏Symfony的MVC。实际上,视图只是根据格式表示数据,所以无论您的服务器将JSON数据发送给Angular还是让Twig在服务器上呈现HTML,您仍然在执行Symfony的MVC方法的“V”。

另一方面,我喜欢角度的反应,它就像新的趋势。你能列举一些在这个范围内使用角度的优点和缺点吗?

如果您的用户界面非常的文件/超文本驱动的(换句话说透明度搜索引擎的问题给你),你使用十几少异步调用站点范围,你会朝树枝+ jQuery的几乎肯定趋向。

如果您的用户界面需要一定程度的复杂性来接近“桌面”应用程序,那么您几乎肯定倾向于角度。

市场上出现的许多应用程序都处于两种情景之间。越接近你越明确你的决定将成为。

我可以说的一件事是,如果你有任何疑问,你可能会想要坚持枝/ jquery,只是因为他们是很好的理解和成熟的技术,并且需要很少的学习曲线,如果你已经在用Symfony构建。

0

对于我TWIG和TWIG只有js/jQuery/Ajax/Json。没有什么是必要的,真的。我没有看到任何与Symfony一起加入Angular的优点,而symfony提供了所有必需的东西。 Twig实际上就是使用{{data}}和{%functions%}的类固醇HTML,当您从控制器正确准备数据时,它是非常简单的。 接下来的事情很好,这是CSS网格。 没有引导程序或任何框架以正确的方式组织好事情。

但是! 您或您的团队必须具备准备好控制器的技能,以免过热。 :)