2015-04-12 71 views
0

我試圖讓一些JavaScript Rounting在我的遊戲框架的應用程序和正在運行到一些誤區:發揮框架的Javascript路由無法加載資源

我有id爲#next一個按鈕,應該使用Ajax加載一些將新圖像和文字轉換爲名爲#content的div。

在我Application.java我已經實現了以下兩種方法:

public static Result nextUser(int i) { 
    return ok(content.render(users.get(i))); 
} 

public static Result javascriptRoutes() { 
    response().setContentType("text/javascript"); 
    return ok(
      Routes.javascriptRouter("jsRoutes", 
        controllers.routes.javascript.Application.nextUser() 
      ) 
    ); 
} 

提出這一content.scala.html文件:

@(user: User) 
<img id="user" src="@routes.Assets.at(user.getImg())" /> 
<h2>@user.getStatus()</h2> 

加入到這一點的路線文件:

GET  /nextuser     controllers.Application.nextUser(i: Int) 

GET  /assets/javascripts/routes controllers.Application.javascriptRoutes() 

然後嘗試使用此Javascript代碼:

<script type="text/javascript" src="@routes.Application.javascriptRoutes()"></script> 
<script> 
    var userIndex = 1; 

    $("#next").click(function() { 
     jsRoutes.controllers.Application.nextUser(userIndex).ajax({ 
     success : function(data) { 
      $("#content").html(data); 
     }, 
     error: function(err) { 

     } 
     }); 
    }); 

</script> 

在javascriptRoutes方法中的Application.java文件中控制器。 路線。無法找到。

有沒有人知道是什麼導致了錯誤?

編輯:

我可以解決初始誤差得益於此: Unable to resolve reverse routing methods in IntelliJ

現在看起來是這樣的:

enter image description here

的nextUser方法不能竟然發現當克利定義。

當我使用activator compile編譯應用程序和使用activator run我的鉻控制檯運行它看起來像這樣:

http://i.gyazo.com/34581c81beda3520f927991c6a0c554f.png

靜得路由文件不知何故不能被發現。

+0

爲什麼scala被標記? – curious

+1

你可能試着更好地解釋你想要達到的目標嗎? – Martijn

+0

做了一些編輯 –

回答

0

好吧,我可以修復由於這個問題:

Can't get javascriptRoutes to work with Play Framework 2

這個問題在我的路線文件的順序。只要我在javascript路由之前切換資產聲明,它就可以工作:

# Javascript Router 
GET  /assets/javascripts/routes  controllers.Application.javascriptRoutes() 

# Map static resources from the /public folder to the /assets URL path 
GET  /assets/*file    controllers.Assets.at(path="/public", file)