4

テンプレートの一部を 1.2.4 から 2.0 に翻訳するのに苦労しています。

これまでのところ、すべてのフラッシュ要素をループすることができましたが、キーとメッセージを別々に取得したいと思います (@msgKey にはリストが含まれており、それを分割する方法がわかりません:/) => (success, Your data has been updated).

少しでもお役に立てば幸いです!:)

元のコードは次のとおりです。

#{if flash.data.size() > 0}
    #{list items:flash.data, as:'msg'}
        #{if msg.key.substring(0, 4).equals('info')}#{set msg_type:'info' /}#{/if}
        #{if msg.key.substring(0, 4).equals('succ')}#{set msg_type:'success' /}#{/if}
        #{if msg.key.substring(0, 4).equals('warn')}#{set msg_type:'warning' /}#{/if}
        #{if msg.key.substring(0, 4).equals('erro')}#{set msg_type:'error' /}#{/if}
        <div class="alert alert-${msg_type}" data-dismiss="alert">  
            <a title="Close that message" class="close">×</a>
            ${msg.value.raw()}
        </div>
    #{/list}
#{/if}

そして、ここに新しいものがあります:

@if(!flash.isEmpty()) {
    @for(msgKey <- flash) { 
        <div class="alert alert-@msgKey" data-dismiss="alert">      
            <a title="@Messages("misc.message.close")" class="close">×</a>
            @msgKey
        </div>
    }
}

助けてくれてありがとう、ありがとう!

4

2 に答える 2

6

Besides Marius solution, you can also write this:

@if(!flash.isEmpty()) {
    @for((msgKey, msgValue) <- flash) { 
        <div class="alert alert-@msgKey" data-dismiss="alert">      
            <a title="@Messages("misc.message.close")" class="close">×</a>
            @msgKey
        </div>
    }
}
于 2012-04-17T21:41:02.967 に答える
4

フラッシュ内のデータはMapであり、それを反復処理すると、キーと値の 2 つの要素のタプルが生成されます。@msgKey._1でキーに、 で値にアクセスできます@msgKey._2

于 2012-04-17T18:29:40.740 に答える