Marionete multi-usuário/funções de aplicação
-
13-12-2019 - |
Pergunta
Eu tenho que construir um complexo bonito aplicativo usando Espinha dorsal Marionete.A interface do usuário tem que lidar com vários usuários com diferentes funções.Por exemplo, o 'admin' usuário vai ver o menu completo, enquanto o 'convidado' usuário irá acessar um subconjunto do mesmo menu.Além disso, alguns pontos de vista serão acessíveis a todos os usuários, mas as funções dentro deles (adicionar, editar, excluir) precisam ser destacadas as diferentes funções.
Eu não estou certo sobre a abordagem certa para usar, a fim de resolver este problema.Eu poderia ter modelos diferentes para as diferentes funções, mas, neste caso, a abundância de código será duplicado dentro delas.Existe alguma melhor prática (ou talvez algumas exemplo) para classificar o meu problema usando Marionete?
Obrigado antecipadamente, Fabrizio
Solução
Gostaria de manter um mypermissions objeto e, em seguida, escrever a lógica na itemview para lidar com casos diferentes.Você pode fazer uma classe CSS chamada de "ocultar", que é definido para
display:none
Em seguida, basta adicionar essa classe Isso pode ser feito sem alterar o modelo.
Aqui está um exemplo em Coffeescript (não testado ou qualquer coisa)
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'