30

我最近开始建立一个大型社交网络,我认为我的结构很好,但结果证明我建立这个逻辑很糟糕。

我将我的观点与 AngularJS(坏主意)混为一谈,跳过了刀片扩展,但由于我使用了很多块和侧边栏,所以这让我很头疼。

目前我只是用 Angular 处理表单验证,但实际上我所有的网站页面都需要 ajax、数据提取等。

我在网上搜索,发现角度视图存储在公共文件夹中,但是由于我所有的页面都将使用角度,将我所有的视图存储在公共文件夹中,并且只使用 Laravel 作为后端是一个好主意吗?

我知道这是一个愚蠢的问题,但我有点困惑。

任何帮助提示表示赞赏。

4

3 回答 3

20

有两种方法可以组合这些框架:

  1. 仅客户端渲染

    这是大多数 Web 应用程序使用的更简单的方法。在这种情况下,您将使用 Laravel 作为返回 JSON 的 API 端点。$httpAngular 可以通过其或服务查询这些数据$resource并编译模板,这些模板存储在公共文件夹中。Angular 模板只是带有指令和一些 {{var}} 语句的 HTML。这样 Angular 也可以完成所有路由。

  2. 服务器端和客户端渲染

    这是 Laravel 在服务器端进行路由和编译一些模板的更难的方法。例如,您将仅将 Angular 用于网站上的某些交互,就像使用 jQuery 一样。这种方法的好处是性能,因为用户将在他们第一次访问您的网站时获得完整的 HTML。缺点是你可能不得不两次编写一些逻辑并且不能使用 Angular 的一些特性。

于 2013-08-24T16:00:18.537 回答
13

要真正受益于 Angular 的大部分功能,您应该编写一个单页应用程序。这意味着您将通过 Web API 与服务器通信,并且您不会有任何Laravel 服务器端模板。

所以是的,您应该编写两个解耦的应用程序。一个使用 Angular 的客户端和一个公开 Web API(最好是 RESTful)的服务器端。

通过这种方式,您可以从客户端的 JS/HTML/CSS 切换到 Flash 或 Silverlight 或其他东西,从 Laravel/PHP/MySQL 切换到 .NET 或 NodeJS 或 Meteor/MongoDB。

于 2013-08-24T15:44:45.797 回答
6

Sergiu 是对的,但在某些情况下,Laravel 仍然提供了客户端模板无法实现的好处。这与 SEO 和 WCAG(可访问性)有关。

AngularJS 通过 DOM 操作呈现内容,因此搜索引擎无法确定这些操作完成后显示的内容。屏幕阅读器也是如此。由于这个原因,一些内容必须通过服务器端视图结构来传递。这就是为什么 Wordpress 和 Laravel 拥有长久而健康的未来。

在后端或在 SEO 和 WCAG 不重要的情况下,随着越来越多的开发人员学习如何使用它们,将越来越多地使用数据绑定客户端模板,例如与 AngularJS 和 Ember 一起使用的模板。

至于是否将 AngularJS 或 Laravel 用于视图构造,最好学习如何使用两者并在最合适的地方应用。

于 2013-11-10T03:01:38.873 回答