2016-08-22 7 views
0

PlayフレームワークのJavascript Routingを使用すると、私のアプリケーションで問題が発生します。これは問題です:Javascriptの再生中のフレームワークが動作しない

Screenshot

と、これは私のコードです:

:これはhtml.scalaファイルである

GET /javascriptRoutes controllers.Application.javascriptRoutes 
    GET /Process/All  controllers.ProcessController.retrieveAllProcess 

class Application extends Controller { 

     import play.api.mvc._ 
     import play.api.routing._ 

     def javascriptRoutes = Action { implicit request => 
     Ok(
      JavaScriptReverseRouter("jsRoutes")(routes.javascript.ProcessController.retrieveAllProcess) 
     ).as("text/javascript") 
     } 
    } 

これはMUYルートファイルです

var option = 
     { "url" : @routes.javascript.ProcessController.retrieveAllProcess, 
     ... 
     } 

ありがとうございます:)。

答えて

1

JavaScriptのルーティングと逆ルーティングを混同していると思います。

Javascriptのルーティング

Javascriptのルーティングは、JavaScriptコードを生成することを意味します。生成されたコードは、クライアント側でurlを生成するためにjavascriptで使用できる関数を定義します。あなたが生成されたコードを返すアクションを定義したので、あなたは、このスクリプトを使用する必要があるURLのhtmlページを伝えるために逆ルーティングを使用していること

<script type="text/javascript" src="@routes.Application.retrieveAllProcess()"></script> 

注意を使用して、ページの中に含めることができます。 :)

は、その後、あなたのjavascriptのコードでは、Application::retrieveAllProcessメソッドにHTTP動詞とURLの両方を含むjavascriptオブジェクトを生成するので、

var retrieveAllProcessRoute = jsRoutes.controllers.Application.retrieveAllProcess() 

ように使用することができます。

リバースルーティング

リバースルーティングは、Scalaのコードを生成するために使用されます。このコードは、ビュー内にURLを生成するか、サーバ側のコントローラメソッドに対してRedirectsを生成するためのものです。

あなたはテンプレート(*.html.scala)について話しているので、あなたは物事のサーバー側について話しています。つまり、Playのリバースルーティング機能を使用する必要があります。以下は、リバースルーティングを使用するようにJavaScriptテンプレートスニペットを書き直しました。

var option = { 
    "url": @routes.Application.retrieveAllProcess, 
    ... 
} 
関連する問題