2

BackboneMarionetteを使用してかなり複雑なアプリケーションを構築する必要があります。ユーザーインターフェイスは、異なる役割を持つ複数のユーザーを処理する必要があります。たとえば、「admin」ユーザーには完全なメニューが表示されますが、「guest」ユーザーには同じメニューのサブセットにアクセスします。さらに、一部のビューにはすべてのユーザーがアクセスできますが、ビュー内の機能(追加、編集、削除)は、さまざまな役割でプロファイルする必要があります。

この問題を解決するために使用する正しいアプローチがわかりません。役割ごとに異なるテンプレートを使用することもできますが、この場合、多くのコードがテンプレート内に複製されます。マリオネットを使用して問題を解決するためのベストプラクティス(またはいくつかの例)はありますか?

よろしくお願いします、Fabrizio

4

1 に答える 1

2

mypermissionsオブジェクトを保持してから、アイテムビューにロジックを記述してさまざまなケースを処理します。「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 に答える