有没有办法在 Backbone View 中实现权限

Posted

技术标签:

【中文标题】有没有办法在 Backbone View 中实现权限【英文标题】:Is there a way to implement permissions in Backbone View 【发布时间】:2012-12-18 14:42:30 【问题描述】:

我目前正在开发 Backbone 中的一个大型应用程序。我面临着在表单上实现字段级别权限的挑战。

一种方法是欺骗 require.js 的文本 API,让它从 MVC 控制器获取视图/部分,并在服务器端实现权限。这样,我将获得可以呈现的所需 html(因为这将是从服务器返回的编译代码)。

有没有更好的方法在 Backbone 中做到这一点?

【问题讨论】:

我不太明白你的问题。您是否尝试根据您拥有的用户类型来更改表单上的哪些字段可见?您是否试图根据用户类型限制从服务器显示的数据?您是否尝试根据用户类型验证表单的输入?有什么组合? “Backbone 的文本 API”是什么意思,如何“欺骗”它?此外,相关代码sn-ps将使您的问题更容易解决。 @AndrewHubbs 是的,我需要根据用户权限限制在 from 和某些情况下某些表单上的字段/数据的显示。验证输入对所有用户都是相同的,只是某些用户不允许查看/编辑关键信息。 而且该文本 api 不是来自 require.js 的主干(我的错)。它的作用是从服务器获取 HTML 视图,然后您可以将其与 Backbone 模型绑定并渲染它。欺骗它意味着我没有提到 HTML 文件的物理路径,而是提到了使用 MVC 完成的路径;控制器将捕获它,然后以部分形式返回已编译的 HTML。我希望我这次明白了? :) 酷。我现在明白你的问题了。您是通过客户端 javascript 模板呈现视图,还是服务器为相关表单返回完全呈现的 HTML? 【参考方案1】:

首先,无论您使用 Backbone 做什么,您必须限制从服务器返回的数据。

例如,如果您有一个 User 对象,其中包含敏感字段(如 email),这些字段仅供所有者用户使用,则服务器必须负责不将该信息发送给客户端。同样,如果不允许随机用户创建像 email 这样的字段,则服务器必须过滤或验证客户端提交的数据。

在客户端上,您将希望基于相同的用户权限来控制显示。我将通过关闭敏感数据未从服务器返回的事实或一些专门设置的指示用户权限的标志来做到这一点。

【讨论】:

如果您有一些代码示例可以使用,我很乐意扩展此答案。

以上是关于有没有办法在 Backbone View 中实现权限的主要内容,如果未能解决你的问题,请参考以下文章

Backbone中父子view之间的值传递

从 Backbone.View 中分离模板逻辑

使用Backbone View作为React组件

如何在 Backbone.js 中设置视图的 id?

backbone.js1.3.3------------------------view

Backbone.View.extend之后的构造函数实例化经历了一些什么处理