【发布时间】:2013-01-31 18:24:04
【问题描述】:
前言: 任何来自 Rails 社区的人都可能熟悉在服务器端声明模型操作授权的 cancan。 IE。可以吗?(:read, Project)
背景:但是,在前端的 UI 层中,我还没有找到任何提供相同类型的抽象来处理用户看到的内容和他们有权做的事情(显然总是有一个后端身份验证层) .例如,您是否向用户显示按钮?我们是否包含“contenteditable”元素属性?如果用户点击“喜欢”,我们会尝试注册还是向他们显示登录对话框?
问题:有人知道处理此类 UI 问题的框架/工具/库/最佳实践吗?
跟进:问题是在视图中还是在模板中进行评估?这是模板语言的特性还是我们传入模板的一组布尔变量?
除此之外: 我有一个 cancan 模仿工具的想法,其中方法签名类似于 App.can('like',project,user),其中 project 和 user 是 BB 模型对象。但问题可能是用户可能能够对任何给定对象执行的不同操作的数量。 IE。喜欢项目、编辑项目、评论项目、邀请朋友加入项目等。其中一些可以简化为 RESTful 操作,但我认为大多数人会同意 UI 呈现更多类型的操作。
【问题讨论】:
-
我不知道有什么专门做这个的框架,但一个简单的解决方案是让你的“can”对象成为一个 Backbone.Model,然后将该模型传递给你的视图(这可以用它来检查“我应该渲染 foo 吗?”)。
标签: javascript templates backbone.js cancan declarative