15

我想在我的下一个项目中使用 AngularJS。具有 Python 后端和 html5、Angular 前端的应用程序。

我将在后端使用 MVC 框架,我有点困惑。我必须在后端和前端使用路由吗?

因为我一直使用后端路由,而前端路由对我来说真的是一个新想法。

客户端路由更好吗?而当我选择使用前端路由时,后端不会有路由吗?所有请求都将发送到一个 url?

4

2 回答 2

21

您可以使用客户端路由,让后端返回静态文件和 JSON 数据。Angular 中的路由基本上告诉您需要从服务器下载哪个部分模板以及哪个控制器将处理它。

您的后端路线将是这样的

'/partials/:name' -> return corresponding partial

'/api/*' -> handlers to return json data

'/*' -> return index.html

您的 index.html 将包含对其他视图的引用

...
<div ng-view></div>
...

现在假设您访问 yourapp.com/someview.html。服务器返回 index.html 并且由于 url 是 /someview,Angular 将向服务器请求“someview”部分并相应地呈现页面。

简而言之,服务器的作用是返回 index.html、partials 和服务 REST API 请求。客户端始终接收 index.html 并根据 url 请求对应的部分和 JSON 数据。

于 2013-03-22T08:34:02.310 回答
15

您可以选择进行客户端路由、服务器端路由或两者的组合...

在客户端路由的情况下,您将拥有一个由服务器提供的页面。之后的所有路由都将由客户端完成。如果您的应用程序有很多页面,这可能不是最佳解决方案,您可能希望进行服务器端路由。

在服务器端路由的情况下,您将为服务器应用程序上定义的每个路由提供一个页面。它们中的每一个都将包含一个 mini-angularJS 应用程序(此外,如果有意义的话,这些 mini-SPA 中的每一个都可以做一些额外的路由)

由您决定什么最适合您的情况。

更新:

如果您打算进行客户端路由,请务必从 AngularUI 项目中查看UI-router 。它使您能够创建基于状态的视图以及其他一些使用 Angular 的本机路由无法实现的功能。

于 2013-03-21T21:53:18.970 回答