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

Foi útil?

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'
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top