AngularJS路由vs后端路由



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

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

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

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

可以使用客户端路由,让后端返回静态文件和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。服务器返回由于url是/someview, Angular会从服务器请求"someview"的部分,并相应地渲染页面。

简而言之,服务器角色是返回index.html,部分和服务REST API请求。客户端总是接收到index.html,并根据url请求相应的部分和JSON数据。

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

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

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

由你来决定什么对你的情况最有效。

更新:

如果你打算做客户端路由,一定要查看AngularUI项目中的UI-router。它让你能够创建基于状态的视图,以及其他一些Angular原生路由无法实现的功能。

相关内容

最新更新