我必须使用Backbone Marionette构建一个非常复杂的应用程序。用户界面必须处理具有不同角色的多个用户。例如,'admin'用户将看到完整菜单,而'guest'用户将访问同一菜单的子集。此外,所有用户都可以访问一些视图,但需要在不同角色上分析其中的功能(添加,编辑,删除)。
我不确定使用正确的方法来解决这个问题。我可以为不同的角色设置不同的模板,但在这种情况下,大量代码将在其中重复。是否有任何最佳实践(或者可能是一些例子)使用Marionette来解决我的问题?
提前致谢, 的Fabrizio
答案 0 :(得分: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'