2

我必须使用 Backbone Marionette 构建一个非常复杂的应用程序。用户界面必须处理具有不同角色的多个用户。例如,“admin”用户将看到完整的菜单,而“guest”用户将访问同一菜单的子集。此外,所有用户都可以访问某些视图,但其中的功能(添加、编辑、删除)需要针对不同的角色进行配置。

我不确定解决此问题的正确方法。我可以为不同的角色使用不同的模板,但在这种情况下,大量代码将在其中重复。是否有任何最佳实践(或者可能是一些示例)来使用 Marionette 解决我的问题?

在此先感谢,法布里齐奥

4

1 回答 1

2

我会保留一个 mypermissions 对象,然后在 itemview 中编写逻辑来处理不同的情况。您可以创建一个名为“hide”的 CSS 类,该类设置为

显示:无

然后你只需添加那个类这可以在不更改模板的情况下完成。

这是 Coffeescript 中的一个示例(未经测试或其他任何内容)

AuthView = Backbone.Marionette.ItemView.extend
    template: '#auth-template'          
    onRender: ->
        @checkpermissions()
    checkpermissions: -> 
        if (mypermissions.isUser)
            $(".delete").addClass 'hide'
            $(".add").addClass 'hide'
        elseif (mypermissions.isAdmin)
            $(".delete").removeClass 'hide'
            $(".add").removeClass 'hide'
于 2012-10-03T21:44:00.953 回答