2013-04-23 16 views
8

próbuję użyć funkcji w widoku odtwarzania szablonuzdefiniować funkcję Scala w szablonie zabaw

@active(path: String):String = @{ 
     var active:String = "" 
     if (request.path.startsWith(path)) { 
      active = "class=\"active\"" 
     } 
     return active 
} 

<div class="container-fluid"> 
.... 
    <li @active("/page") ...> 

Kompilator gra mówi, że nie może znaleźć wartość aktywna. Co jest nie tak?

+1

Po pierwsze, drugi symbol @ jest niepotrzebny. Po drugie, czy zdefiniowałeś funkcję @active w jej własnym pliku i/lub zaimportowałeś? – korefn

+0

Teraz przeniosłem go do własnego pliku. W ten sposób działa. To też jest w porządku, ponieważ potrzebuję tego również w innych plikach. – myborobudur

+2

@korefn: W rzeczywistości drugi symbol @ mówi Play, że jest to blok tego, co dokumentacja Play nazywa "czystym" (czyli Scala) kodem, w przeciwieństwie do sekcji szablonu HTML. Jeśli pominie ten @, funkcja zwróci "var active: String ... etc." jako tekst dosłowny. –

Odpowiedz

Powiązane problemy