AngularJS路由与后端路由

时间:2013-03-21 21:46:27

标签: angularjs url-routing frontend backend

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

我将在后端使用MVC框架,我有点困惑。 我是否必须在后端使用路由并且还要使用前端?

因为我总是在前端使用后端路由和路由对我来说是个新想法。

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

2 个答案:

答案 0 :(得分:19)

您可以使用客户端路由,让后端返回静态文件和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请求coressponding partials和JSON数据。

答案 1 :(得分:15)

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

如果是客户端路由,您将拥有服务器提供的单个页面。之后的所有路由都将由客户端完成。如果您的应用程序包含大量页面,这可能不是最佳解决方案,您可能希望进行服务器端路由。

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

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

更新

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