4

我一直在阅读AngularJS它似乎很有希望,这是我唯一想要弄清楚的,不是特定于框架的,但它对于客户端模板是通用的。

假设您有一个具有多个角色的 Web 应用程序,每个角色可能包含附加功能,因此您不能为每个角色使用不同的模板,这将被认为是不好的做法,所以我的问题是使用客户端的最佳方法是什么同时模板,不将您的模板暴露给客户,例如,在AngularJS我不必使用ng-show?在服务器端生成模板的最佳工具是什么?

4

2 回答 2

6

您将要在服务器端过滤该医疗数据,然后在 Angular 中相应地显示。ng-show 和 ng-hide 只是切换仍然存在于 DOM 中的元素的显示。换句话说,(我假设)受 HIPAA 保护的数据只是坐在那里任何人都可以“查看源”它。

即使您确实想出了一种方法来彻底删除那些您不想根据角色显示的 DOM 元素,也没关系,因为您仍然在技术上将这些数据传输到客户端,并且一个精明的错误 - doer 将简单地嗅探数据包并获取受保护的数据。

事实上,你所有的安全和角色检查都应该在服务器上完成。在任何 JS 框架中,无论是否有 Angular,您都不能相信 JavaScript 应用程序可以在客户端上执行此操作。

至于基于角色隐藏字段(可能是因为您在这些字段中没有要显示的数据),ng-show 或 ng-hide 将是您的朋友。偶尔 ng-switch 会做。如果您出于某种原因需要完全不同的模板,那么我会在每种情况下使用带有自定义指令的 ng-switch,这将允许您模板化每个角色下的内容。

我希望这会有所帮助。

于 2012-10-21T23:24:49.730 回答
3

Blesh 仅向在服务器端具有适当角色的用户提供数据是正确的,但听起来您想重用客户端 UI 的各个部分。

在 AngularJS 中,您可以ng-include为不同的数据使用和构建不同的部分。所以你可以在你的“医生”和“护士”视图中写这样的东西:

<div ng-include="'allergies.html'"></div>

然后有一个单独的 HTML 文件,名为allergies.html

<p>Allergy info: {{someData}}</p>

另一种选择是使用指令。

于 2012-10-22T05:54:54.527 回答