5

下午好,

我有一个一般概念性的问题,希望你们能帮助我解决。它主要是关于 AngularJS,但也与所有 MV* JS 框架相关。您如何处理 AngularJS 等领域中传统的服务器端功能?

考虑一个示例 - 身份验证。我有一个 Web API 业务层项目(有它自己的 url),它接受 JSON 并与数据库对话并吐出 JSON,标准的东西。它有一个过滤器,用于检查标题中的用户名和密码,如果它们与 API 期望的用户名和密码不匹配,则不允许您使用该方法。

在 AngularJS 之前,我的客户端应用程序将是一个带有非常轻量级控制器的 MVC(非 Web api)项目 - 控制器的全部意义在于从视图中的 jQuery ajax 方法接收数据,从 web.config 添加身份验证信息,传递这个整个事情都放到 API url 上,然后将生成的(通常是部分的)视图返回给 jQuery。

在 AngularJS 的世界中,我似乎不必这样做——我可以让 Angular 的 $http 方法直接用于 API,然后让 Angular 来做这件事。这样,由于缺乏更好的术语,客户端应用程序根本没有“服务器端”。但是我根本看不到身份验证之类的事情是如何完成的。

我是否误解了客户端框架?客户端应用程序是否仍需要与实际 API 对话的“服务器端”组件?在那种情况下,Angular 的魅力/好处是什么?使用控制器向 jQuery 吐出部分视图本身似乎是一种很好的方法。

正如您可能会告诉我的那样,我是客户端框架的新手 :) 感谢您的帮助!

4

1 回答 1

4

你是对的,因为 Angular 处理所有逻辑客户端(控制器、html 模板等),所以你只需要 API(在你的情况下是 Web API)。

另请查看https://github.com/witoldsz/angular-http-authhttp://www.espeo.pl/2012/02/26/authentication-in-angularjs-application以了解如何在 angularjs 中实现身份验证以最好的方式。

于 2013-08-01T19:33:36.633 回答