2013-04-26 3 views
2

Je voudrais revenir un fichier .js à partir d'un modèle in Play Framework 2.Rendu a Play! Framework2 javascript en tant que template? !

Voilà comment je l'ai fait:

Dans mon dossier vues, j'ai créé un fichier modèle:

initials.scala.js 

Containinig quelque chose comme:

{ 
    'data': @Model.find.findList() 
} 

Et puis, dans mon contrôleur:

public static Result initials() { 
    return ok(views.js.initials.render()); 
} 

C'est assez pour moi straighforward, mais je reçois cette erreur:

error: package views.js does not exist

Ce que je fait de mal?

Si je renomme js en txt (dans le nom de fichier et l'appel du package dans le contrôleur), tout fonctionne correctement. Mais si je le change en js, j'obtiens une erreur.

+1

il sera bientôt disponible https://github.com/playframework/Play20/commit/0b0b37dd095 –

Répondre

3

Vous n'avez rien fait de mal, Play vous permet d'utiliser seulement .html, .xml ou .txt extensions pour les vues, vous devez donc utiliser l'un d'entre eux.

Du point de vue technique, il n'a pas d'importance que vous allez utiliser, de toute façon vous devez retourner à partir de contrôleur en JavaScript, soit avec:

public static Result initials() { 
    return ok(views.html.initials.render()).as("application/javascript"); 
} 
+0

C'est triste, y a-t-il une raison? Je peux comprendre des fichiers comme .exe, mais pour des fichiers comme .js et .css qui peuvent contenir des variables, cela pourrait être utile. –

0

Ceci est possible en plaçant une route vers l'actif particulier dans la définition de vos itinéraires.

ie. GET /assets/javascripts/initials.js controllers..initials()

0

Vous pouvez avoir un fichier scala.js mais vous ne l'appelez pas avec views.js.initials.render() mais js.initials.render()

Au moins avec Scala il fonctionne avec Play 2.2

Questions connexes