我一直在阅读有关AngularJS
的内容,这似乎非常有希望,我唯一想弄清楚的是,不是针对框架,而是针对客户的一般情况 - 侧模板。
让我们假设您有一个具有多个角色的Web应用程序,每个角色可能包含附加功能,,,因此您不能为每个角色设置不同的模板,这将被视为不良做法,所以我的问题是&# 39;同时使用客户端模板的最佳方法,而不是将模板暴露给客户端,例如,AngularJS
我不必使用ng-show
?在服务器端生成模板的最佳工具是什么?
答案 0 :(得分:6)
您将要过滤该医疗数据服务器端,然后在Angular中进行相应显示。 ng-show和ng-hide只是切换DOM中仍然存在的元素的显示。换句话说,那个(我假设)HIPAA保护的数据只是坐在那里任何人都可以“查看源代码”。
即使你 想出一种彻底删除那些你不想根据角色显示的DOM元素的方法,也没关系,因为你仍然在技术上转移了那个数据到客户端,一个精明的错误行为者只会嗅探数据包并获取受保护的数据。
实际上,您的所有安全性和角色检查都应该在服务器上完成。在任何JS框架中,您都不能相信JavaScript应用程序在客户端上执行此操作,无论是否为Angular。
至于根据角色隐藏字段(可能是因为你没有数据显示在这些字段中),ng-show或ng-hide将是你的朋友。偶尔ng-switch会这样做。如果您出于某种原因需要完全不同的模板,那么我会在每种情况下都使用带有自定义指令的ng-switch,这样您就可以模拟出每个角色下面的内容。
我希望有所帮助。
答案 1 :(得分:3)
Blesh关于仅向服务器端具有相应角色的用户提供数据是正确的,但听起来您想要重新使用客户端UI的部分。
在AngularJS中,您可以使用ng-include
并为不同的数据部分构建不同的部分。因此,您可以在“医生”和“护士”视图中写出类似的内容:
<div ng-include="'allergies.html'"></div>
然后有一个名为allergies.html
的单独HTML文件:
<p>Allergy info: {{someData}}</p>
另一种选择是使用指令。